Index: openacs-4/packages/acs-content-repository/www/doc/design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/design.html,v diff -u -N -r1.1.1.1 -r1.1.1.1.30.1 --- openacs-4/packages/acs-content-repository/www/doc/design.html 13 Mar 2001 22:59:26 -0000 1.1.1.1 +++ openacs-4/packages/acs-content-repository/www/doc/design.html 22 Jun 2016 07:40:41 -0000 1.1.1.1.30.1 @@ -2,8 +2,8 @@ Content Repository Design

Content Repository Design

-ACS Documentation : - Content Repository +ACS Documentation : + Content Repository

I. Essentials

Index: openacs-4/packages/acs-content-repository/www/doc/index.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/index.html,v diff -u -N -r1.2.18.2 -r1.2.18.3 --- openacs-4/packages/acs-content-repository/www/doc/index.html 21 Aug 2015 10:49:20 -0000 1.2.18.2 +++ openacs-4/packages/acs-content-repository/www/doc/index.html 22 Jun 2016 07:40:41 -0000 1.2.18.3 @@ -7,7 +7,7 @@

ACS Content Repository

-ACS Documentation +ACS Documentation


-Design question: Do we want to mandate +Design question: Do we want to mandate that all template files be stored in UTF8? I don't think so, because most people don't have Unicode editors, or don't want to be bothered with an extra step to convert files to UTF8 and back when -editing them in their favorite editor.

-

Same question for script and template +editing them in their favorite editor.

+

Same question for script and template files, how do we know what language and character set they are authored in? Should we overload the filename suffix (e.g., -'.shiftjis.adp', '.ja_JP.euc.adp')?

-

The simplest design is probably just to +'.shiftjis.adp', '.ja_JP.euc.adp')?

+

The simplest design is probably just to assign a default mapping from each locale to character a set: e.g. ja_JP -> ShiftJIS, fr_FR -> ISO-8859-1. +++ (see new ACS/Java -notes) +++

+notes) +++

Tcl Source File Character Set

There are two classes of Tcl files loaded by the system; library files loaded at server startup, and page script files, which are run on each page request.


-Should we require all Tcl files be stored +Should we require all Tcl files be stored as UTF8? That seems too much of a burden on -developers.

-

50.10 Tcl library files can be authored in any character +developers.

+

50.10 Tcl library files can be authored in any character set. The system must have a way to determine the character set before loading the files, probably from the filename.

-

50.20 Tcl page script files can be authored in any +

50.20 Tcl page script files can be authored in any character set. The system must have a way to determine the character set before loading the files, probably from the filename.

Submitted Form Data Character Set

-50.30 Data which is submitted with a HTTP request using a +50.30 Data which is submitted with a HTTP request using a GET or POST method may be in any character set. The system must be able to determine the encoding of the form data and convert it to Unicode on demand. -

50.35 The developer must be able to override the default +

50.35 The developer must be able to override the default system choice of character set when parsing and validating user form data.

-

50.30.10 Extra hair: In Japan and some other Asian +

50.30.10 Extra hair: In Japan and some other Asian languages where there are multiple character set encodings in common use, the server may need to attempt to do an auto-detection of the character set, because buggy browsers may submit form data in an unexpected alternate encoding.

Output Character Set

-50.40 The output character set for a page request will be +50.40 The output character set for a page request will be determined by default by the locale associated with the request (see requirement 20.0). -

50.50 It must be possible for a developer to manually +

50.50 It must be possible for a developer to manually override the output character set encoding for a request using an API function.

VI.F ACS Kernel Issues

-
60.10 All ACS error messages must use the +
60.10 All ACS error messages must use the message catalog and the request locale to generate error message for the appropriate locale. -

60.20 Web server error messages such as 404, 500, etc +

60.20 Web server error messages such as 404, 500, etc must also be delivered in the appropriate locale.

-

60.30 Where files are written or read from disk, their +

60.30 Where files are written or read from disk, their filenames must use a character set and character values which are safe for the underlying operating system.

VI.G Templates

-
70.0 For a given abstract URL, the designer may +
70.0 For a given abstract URL, the designer may create multiple locale-specific template files may be created (one per locale or language) -

70.10 For a given page request, the system must be able +

70.10 For a given page request, the system must be able to select an approprate locale-specific template file to use. The request locale is computed as per (see requirement 20.0).

-

Design note: this would probably be +

Design note: this would probably be implemented by suffixing the locale or a locale abbreviation to the -template filename, such as foo.ja.adp or -foo.en_GB.adp.

-

70.20A template file may be created for a partial locale +template filename, such as foo.ja.adp or +foo.en_GB.adp.

+

70.20A template file may be created for a partial locale (language only, without a territory), and the request processor should be able to find the closest match for the current request locale.

-

70.30 A template file may be created in any character +

70.30 A template file may be created in any character set. The system must have a way to know which character set a template file contains, so it can properly process it.

Formatting Datasource Output in Templates

-70.50 The properties of a datasource column may include a +70.50 The properties of a datasource column may include a datatype so that the templating system can format the output for the current locale. The datatype is defined by a standard ACS datatype plus a format token or format string, for example: a date column might be specified as 'current_date:date LONG,' or 'current_date:date "YYYY-Mon-DD"'

Forms

-70.60 The forms API must support construction of +70.60 The forms API must support construction of locale-specific HTML form widgets, such as date entry widgets, and form validation of user input data for locale-specific data, such as dates or numbers. -

70.70 For forms which allow users to upload files, a +

70.70 For forms which allow users to upload files, a standard method for a user to indicate the charset of a text file being uploaded must be provided.

-

Design note: this presumably applies to -uploading data to the content repository as well

+

Design note: this presumably applies to +uploading data to the content repository as well

VI.H Sorting and Searching

-
80.10 Support API for correct collation (sorting +
80.10 Support API for correct collation (sorting order) on lists of strings in locale-dependent way. -

80.20 For the Tcl API, we will say that locale-dependent +

80.20 For the Tcl API, we will say that locale-dependent sorting will use Oracle SQL operations (i.e., we won't provide a Tcl API for this). We require a Tcl API function to return the correct incantation of NLS_SORT to use for a given locale with ORDER BY clauses in queries.

-

80.40 The system must handle full-text search in any +

80.40 The system must handle full-text search in any supported language.

VI.G Time Zones

-
90.10 Provide API support for specifying a time +
90.10 Provide API support for specifying a time zone -

90.20 Provide an API for computing time and date +

90.20 Provide an API for computing time and date operations which are aware of timezones. So for example a calendar module can properly synchronize items inserted into a calendar from users in different time zones using their own local times.

-

90.30 Store all dates and times in universal time zone, +

90.30 Store all dates and times in universal time zone, UTC.

-

90.40 For a registered users, a time zone preference +

90.40 For a registered users, a time zone preference should be stored.

-

90.50 For a non-registered user a time zone preference +

90.50 For a non-registered user a time zone preference should be attached via a session or else UTC should be used to display every date and time.

-

90.60 The default if we can't determine a time zone is to +

90.60 The default if we can't determine a time zone is to display all dates and times in some universal time zone such as GMT.

VI.H Database

-

100.10 Since UTF8 strings can use up to three (UCS2) or +

100.10 Since UTF8 strings can use up to three (UCS2) or six (UCS4) bytes per character, make sure that column size declarations in the schema are large enough to accomodate required data (such as email addresses in Japanese).

@@ -418,9 +418,9 @@ in web page over an HTTP connection, it is necessary to be able to specify what character set encoding to use.
-

110.10 The email message sending API will allow for a +

110.10 The email message sending API will allow for a character set encoding to be specified.

-

110.20 The email accepting API will allow for character +

110.20 The email accepting API will allow for character set to be parsed correctly (hopefully a well formatted message will have a MIME character set content type header)

@@ -459,8 +459,8 @@
-
hqm@arsdigita.com
+
hqm@arsdigita.com

Last modified: $Date$

Index: openacs-4/packages/calendar/www/cal-item-create-recurrence.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/calendar/www/cal-item-create-recurrence.adp,v diff -u -N -r1.14 -r1.14.2.1 --- openacs-4/packages/calendar/www/cal-item-create-recurrence.adp 27 Oct 2014 16:41:07 -0000 1.14 +++ openacs-4/packages/calendar/www/cal-item-create-recurrence.adp 22 Jun 2016 07:43:59 -0000 1.14.2.1 @@ -13,9 +13,9 @@ #calendar.lt_You_are_choosing_to_m#

-#calendar.Date# @cal_item.start_date@
-#calendar.Time# @cal_item.start_time@ - @cal_item.end_time@
-#calendar.Details# @cal_item.description@ +#calendar.Date# @cal_item.start_date@
+#calendar.Time# @cal_item.start_time@ - @cal_item.end_time@
+#calendar.Details# @cal_item.description@

Index: openacs-4/packages/calendar/www/cal-item-view.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/calendar/www/cal-item-view.adp,v diff -u -N -r1.40 -r1.40.2.1 --- openacs-4/packages/calendar/www/cal-item-view.adp 14 Jul 2015 22:36:43 -0000 1.40 +++ openacs-4/packages/calendar/www/cal-item-view.adp 22 Jun 2016 07:43:59 -0000 1.40.2.1 @@ -83,7 +83,7 @@

Index: openacs-4/packages/calendar/www/doc/requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/calendar/www/doc/requirements.html,v diff -u -N -r1.1.1.1 -r1.1.1.1.26.1 --- openacs-4/packages/calendar/www/doc/requirements.html 23 Apr 2001 23:09:38 -0000 1.1.1.1 +++ openacs-4/packages/calendar/www/doc/requirements.html 22 Jun 2016 07:43:59 -0000 1.1.1.1.26.1 @@ -42,13 +42,13 @@ business, educational, club, and other community scenarios.

III. System/Application Overview

In our system, a -party-specific event is an event associated with a particular +party-specific event is an event associated with a particular party, typically of the sort scheduled by that party or of particular interest to members of that party. For example, a reading group may wish to associate an upcoming book signing event with their reading group party using the Calendar application. -

A user's calendar is the aggregate of the party-specific +

A user's calendar is the aggregate of the party-specific events which are associated with parties of which the user is a member and which have been specified by this user as desirable for calendar inclusion. Users will have the option to suppress the inclusion of all @@ -70,18 +70,18 @@

  • Navigation
  • -Event Management covers those aspects of the application which pertain +Event Management covers those aspects of the application which pertain to events, such as adding, editing, viewing, deleting events, and -setting up recurring events. An event is defined as an activity -associated +setting up recurring events. An event is defined as an activity +associated with one or more time intervals. For instance, "participating in an ACS bootcamp" is an activity, but "participating in the ACS bootcamp during the upcoming week" is an event. Therefore, the Event Management portion would also needs to deal with scheduling issues associated with -adding a temporal aspect to activities . -

    Calendar Views covers those aspects of the application which +adding a temporal aspect to activities . +

    Calendar Views covers those aspects of the application which pertain to the display of calendar events for a particular span of time. -

    Navigation covers those aspects of the application which pertain +

    Navigation covers those aspects of the application which pertain to ways in which the end-user can change the timespan currently being displayed.

    IV. Use-cases and User-scenarios

    @@ -96,7 +96,7 @@
  • Administrators
  • -The individual is primarily interested in having a personal Web +The individual is primarily interested in having a personal Web based calendar. The calendar needs to support the manipulation of basic calendar event components, among these: times, titles, and possibly descriptions. Example: Irwin Individual wants to be able to manage his schedule from any Web browser @@ -105,7 +105,7 @@ receive updates on party-specific events for these parties, retrieve clerical information regarding his upcoming commitments, and add local events which are specific to his travels. -

    Groups and Parties can have a collective calendar that stands +

    Groups and Parties can have a collective calendar that stands apart from the private individual calendar. This would be useful to display calendar events for the public, for whom there is no individual calendar. For example, ArsDigita can display a schedule of upcoming bootcamps, lectures @@ -116,7 +116,7 @@ need to support all the event managment and calendar views had by individual calendars, and in addition, the role of calendar administrator must be assigned to handle event managment. -

    Administrators for a group and party wide calendar are given +

    Administrators for a group and party wide calendar are given create, read, and write permissions on each individual item on the calendar. He or she also has the privilege to change the permissions for each of these items and also individual's ability to interact with these items. @@ -155,283 +155,283 @@

    VI.A Requirements: Private Calendar

    -10 Private Calendar -

    10.0 User Interface -

    10.0.10 The calendar page should indicate whether or not private, +10 Private Calendar +

    10.0 User Interface +

    10.0.10 The calendar page should indicate whether or not private, public or party-specific events are to be displayed. -

    10.0.20 The calendar should support navigation to view different +

    10.0.20 The calendar should support navigation to view different dates in a simple manner. -

    10.0.30 Links to different calendar functions should be clear +

    10.0.30 Links to different calendar functions should be clear and obvious. -

    10.0.40 Each calendar item should be displayed with its subject +

    10.0.40 Each calendar item should be displayed with its subject and time span as the basic information. -

    10.10 Views -

    10.10.0 Different views should be easily selectable. -

    10.10.0 Different views should also be indicated in a clear and +

    10.10 Views +

    10.10.0 Different views should be easily selectable. +

    10.10.0 Different views should also be indicated in a clear and noticeable location -

    10.10.10 List View -

    10.10.10.10 The calendar should support a view showing selected +

    10.10.10 List View +

    10.10.10.10 The calendar should support a view showing selected items in a tabular list format. -

    10.10.10.20 Columns should include date, time, and other relevant +

    10.10.10.20 Columns should include date, time, and other relevant information. -

    10.10.10.30 The columns should be sortable. -

    10.10.10.40 There should be at least two lists of items. One +

    10.10.10.30 The columns should be sortable. +

    10.10.10.40 There should be at least two lists of items. One list should consist of items whose dates occur within a user-specified number of days of the currently viewed date. One list should consist of items that have been added within a user-specified number of days of the current date. -

    10.10.20 Day View -

    10.10.20.10 The calendar should support a view showing all the +

    10.10.20 Day View +

    10.10.20.10 The calendar should support a view showing all the events for a particular day. -

    10.10.20.20 This view should show the events arranged chronologically +

    10.10.20.20 This view should show the events arranged chronologically with a time guide along one side. -

    10.10.20.30 The range of the time guide should be user-specifiable. -

    10.10.20.40 The user should have the option of compressing the +

    10.10.20.30 The range of the time guide should be user-specifiable. +

    10.10.20.40 The user should have the option of compressing the time guide so that only those time intervals upon which fall selected calendar events are shown. -

    10.10.20.50 Overlapping events should be displayed in an easy +

    10.10.20.50 Overlapping events should be displayed in an easy to understand fashion. -

    10.10.20.60 There should be a simple mechanism for adding events +

    10.10.20.60 There should be a simple mechanism for adding events which start at a particular hour. -

    10.10.20.70 The day view should support events that don't have +

    10.10.20.70 The day view should support events that don't have a specified start and end time, and the time guide should include a slot for these items. -

    10.10.30 Week View -

    10.10.30.10 The calendar should support a view showing all the +

    10.10.30 Week View +

    10.10.30.10 The calendar should support a view showing all the events for a particular week. -

    10.10.30.20 The events for a particular day should be grouped +

    10.10.30.20 The events for a particular day should be grouped together. -

    10.10.30.30 There should be a simple mechanism for adding an +

    10.10.30.30 There should be a simple mechanism for adding an event for a particular day. -

    10.10.30.40 The currently selected day should be highlighted +

    10.10.30.40 The currently selected day should be highlighted or otherwise clearly indicated to the user. -

    10.10.30.50 There should some way to move to the next and previous +

    10.10.30.50 There should some way to move to the next and previous week from this particular view. -

    10.10.40 Month View -

    10.10.40.10 The calendar should support a view showing all the +

    10.10.40 Month View +

    10.10.40.10 The calendar should support a view showing all the items for a particular month. -

    10.10.40.20 The events for a particular day should be grouped +

    10.10.40.20 The events for a particular day should be grouped together. -

    10.10.40.30 There should be a simple mechanism for adding an +

    10.10.40.30 There should be a simple mechanism for adding an event for a particular day. -

    10.10.40.40 The currently selected day should be indicated. -

    10.10.40.50 The application should display only some of the events +

    10.10.40.40 The currently selected day should be indicated. +

    10.10.40.50 The application should display only some of the events per day on the month calendar as oppose to every item. -

    10.10.40.60 There should some way to move to the next and previous +

    10.10.40.60 There should some way to move to the next and previous week from this particular view. -

    10.10.40.70 For each day, there should be a link to the day view +

    10.10.40.70 For each day, there should be a link to the day view for that day. -

    10.10.50 Year View -

    10.10.50.10 As a navigational mechanism, the calendar should +

    10.10.50 Year View +

    10.10.50.10 As a navigational mechanism, the calendar should support a view that shows all months and days in a particular year but not necessarily with any information on items for the days displayed. -

    10.10.50.20 For each month, there should be a link to the month +

    10.10.50.20 For each month, there should be a link to the month view of that month. -

    10.10.50.30 For each day, there should be a link to the day view +

    10.10.50.30 For each day, there should be a link to the day view of that day. -

    10.20 Navigation -

    10.20.10 Navigation Widget -

    10.20.10.10 The calendar should provide a widget for collecting +

    10.20 Navigation +

    10.20.10 Navigation Widget +

    10.20.10.10 The calendar should provide a widget for collecting together related navigation links. This should be similar to the widget provided by Yahoo Calendar and Excite Planner. -

    10.20.10.20 Navigation to a different date should maintain the +

    10.20.10.20 Navigation to a different date should maintain the same view. -

    10.20.10.30 In the list, day, and week views, the widget should +

    10.20.10.30 In the list, day, and week views, the widget should display a mini calendar of the days of the current month. Each day should be a link except for the currently viewed day which should not be a link and should be highlighted in some manner. -

    10.20.10.40 In the month view, the widget should contain a list +

    10.20.10.40 In the month view, the widget should contain a list of the months of the year. Each month should be a link except for the month containing the currently viewed day which should not be a link and should be highlighted in some manner. -

    10.20.10.50 In the year view, the widget should contain a short +

    10.20.10.50 In the year view, the widget should contain a short list of years before and after the current year. Each year should be a link except for the year containing the currently viewed day which should not be a link and should be highlighted in some manner. -

    10.20.10.60 The widget should contain some mechanism for entering +

    10.20.10.60 The widget should contain some mechanism for entering an arbitrary date using a clearly defined format, such as that employed by Yahoo Calendar. -

    10.20.10.70 The widget should clearly display today's date along +

    10.20.10.70 The widget should clearly display today's date along with some mechanism for navigating to that date. -

    10.20.10.80 In the list, day, and week views there should be +

    10.20.10.80 In the list, day, and week views there should be a mechanism for jumping forwards or backwards by a whole month at a time. -

    10.20.10.90 In the month and year views, there should be a mechanism +

    10.20.10.90 In the month and year views, there should be a mechanism for jumping forwards or backwards by a year at a time. -

    10.20.20 View Specific Navigation -

    10.20.20.10 Each view except for 'list' should have some easy +

    10.20.20 View Specific Navigation +

    10.20.20.10 Each view except for 'list' should have some easy mechanism for jumping forward or backward by the interval being viewed. -

    10.20.20.20 Selecting a day in week, month, or year view should +

    10.20.20.20 Selecting a day in week, month, or year view should take you to the day view for the that day. -

    10.20.20.30 Selecting a month in year view should take you to +

    10.20.20.30 Selecting a month in year view should take you to the month view for that month. -

    10.30 Adding Events -

    10.30.10 Adding an event should involve entering information +

    10.30 Adding Events +

    10.30.10 Adding an event should involve entering information for the event in a form and then submitting that form. Form should include title, start date and time, or an explicit indication that the event does not have a start time. Default values should already be entered with the correct time zone offset in place. Non-required fields should include end time or duration, type information, a description, to which party the event belongs, and an indicator as to whether or not this event recurs. -

    10.30.20 There should be a simple, clearly labeled link for adding +

    10.30.20 There should be a simple, clearly labeled link for adding an event. The date should default to the currently viewed date and the present time. -

    10.30.30 The time guide in the day view should have links from +

    10.30.30 The time guide in the day view should have links from each hour and from the slot for items with no start time. -

    10.30.40 Selecting the 'no start time' link should bring up the +

    10.30.40 Selecting the 'no start time' link should bring up the form with the date defaulting to the currently viewed date and the 'no start time' indicator set. -

    10.30.50 Selecting a link from a specific hour should bring up +

    10.30.50 Selecting a link from a specific hour should bring up the form with the date defaulting to the currently viewed date, the start time to the hour selected, and the end time to one hour later. -

    10.30.60 The week view should have a link for each day for adding +

    10.30.60 The week view should have a link for each day for adding an item. -

    10.30.70 The month view should have a link for each day for adding +

    10.30.70 The month view should have a link for each day for adding an item. -

    10.30.80 As in the Yahoo style calendar, there should be a 'quick +

    10.30.80 As in the Yahoo style calendar, there should be a 'quick add' box on the side of their calendar that allows user to add events quickly without having to click through on different days and different views. -

    10.40 Viewing Events -

    10.40.10 Selecting an event's title from any view should display +

    10.40 Viewing Events +

    10.40.10 Selecting an event's title from any view should display details for that event, including links to edit, add attachment, and delete. -

    10.50 Editing Events -

    10.50.10 While viewing an event, select 'Edit'. You should get +

    10.50 Editing Events +

    10.50.10 While viewing an event, select 'Edit'. You should get a form allowing you to edit the title, date, times, types, and description for the event. Non-recurring items should have a "Repeat?" field but not -an "Update?" field. [need to clarify what this means] -

    10.60 Adding Recurring Events -

    10.60.10 If the recurring events indicator is selected in the +an "Update?" field. [need to clarify what this means] +

    10.60 Adding Recurring Events +

    10.60.10 If the recurring events indicator is selected in the form for adding an item, then after submitting that form, a second form should be presented which summarizes the date and time of the item and provides fields to set how the item recurs. -

    10.60.20 The form should include fields to enter the type of +

    10.60.20 The form should include fields to enter the type of interval, the number of intervals between recurrences, and any specific information for the selected type of interval. -

    10.70 Editing Recurring Events -

    10.70.10 Selecting Edit when viewing a repeating item should +

    10.70 Editing Recurring Events +

    10.70.10 Selecting Edit when viewing a repeating item should add a field at the bottom of the form to specify whether any changes should be applied to only the current instance being edited or to all instances of this recurring item. -

    10.80 Adding Attachments to Events -

    10.80.10 When viewing an item, there should be a link to add +

    10.80 Adding Attachments to Events +

    10.80.10 When viewing an item, there should be a link to add an attachment to that item. Selecting that link should bring up a form to add attachments of various types. -

    10.80.20 The form should include a field for the title of the +

    10.80.20 The form should include a field for the title of the attachment. -

    10.80.30 One type of admissible attachment supported should be +

    10.80.30 One type of admissible attachment supported should be an uploaded file. This type should be handled in the standard ACS manner. -

    10.80.40 One type of admissible attachment should be a URL. -

    10.80.50 One type of admissible attachment should be a block +

    10.80.40 One type of admissible attachment should be a URL. +

    10.80.50 One type of admissible attachment should be a block of text. The form should provide a text box for entering the text and a way to indicate if the text is plaintext or HTML. -

    10.80.60 After adding an attachment of any sort, the calendar +

    10.80.60 After adding an attachment of any sort, the calendar should return to the view of the item which should have a list of attachments including the attachment just added. -

    10.80.70 For each attachment listed, there should be displayed +

    10.80.70 For each attachment listed, there should be displayed -- when permissions admit -- the title of the attachment, a link to the content of the attachment, a link to manage the attachment, and a link to edit it. -

    10.80.80 For a file attachment, the content link should return +

    10.80.80 For a file attachment, the content link should return the content of the file. -

    10.80.90 For a URL attachment, the content link should navigate +

    10.80.90 For a URL attachment, the content link should navigate to the URL. -

    10.80.100 For a text attachment, the content link should display +

    10.80.100 For a text attachment, the content link should display the entered text. -

    10.80.110 The manage link links to the management page of the -corresponding file in the file-storage system. [file-storage or -CR?] -

    10.80.120 The edit link allows direct editing of the content +

    10.80.110 The manage link links to the management page of the +corresponding file in the file-storage system. [file-storage or +CR?] +

    10.80.120 The edit link allows direct editing of the content of the attachment. -

    10.90 Inviting other groups to view Events -

    10.90.10 The application should have a link that lets the owner +

    10.90 Inviting other groups to view Events +

    10.90.10 The application should have a link that lets the owner of the event to invite other groups, individual or parties to add this event to their personal calendars. -

    10.100 Deleting events -

    10.100.10 When viewing an item, there should be a link to delete +

    10.100 Deleting events +

    10.100.10 When viewing an item, there should be a link to delete that item. -

    10.100.20 Selecting the delete link should bring up a confirmation +

    10.100.20 Selecting the delete link should bring up a confirmation dialog. -

    10.100.30 If the item is not recurring, then the choice button +

    10.100.30 If the item is not recurring, then the choice button will simply be labeled 'OK'. -

    10.100.40 If the item is recurring, then in addition to the choice +

    10.100.40 If the item is recurring, then in addition to the choice buttons, there should be a selection to indicate either the current instance only or all occurrences. -

    10.100.50 Selecting 'Cancel' should return to the item view. -

    10.100.60 Selecting 'OK' should delete the item in question. -

    10.100.70 If the item was recurring and 'all occurrences' had +

    10.100.50 Selecting 'Cancel' should return to the item view. +

    10.100.60 Selecting 'OK' should delete the item in question. +

    10.100.70 If the item was recurring and 'all occurrences' had been selected, then all other occurrences of the item should be deleted as well. -

    10.100.80 Selecting OK should return to the view where the item +

    10.100.80 Selecting OK should return to the view where the item was originally selected.

    VI.B Requirements: Party-Specific Events

    -20 Party-Specific Events -

    20.10 The calendar should display a list of calendars to which +20 Party-Specific Events +

    20.10 The calendar should display a list of calendars to which the user has access. At a minimum, this will include the user's personal calendar and a public events calendar. If the user belongs to parties that have party-specific events associated with them, there should be additional links to these party-specific events as well as the calendar of the party to which the user belongs. -

    20.30 On the personal calendar, there should also be a toggle +

    20.30 On the personal calendar, there should also be a toggle for each such party that controls whether or not events from that party appear on the personal calendar. -

    20.40 On a user's calendar, party-specific events should indicate +

    20.40 On a user's calendar, party-specific events should indicate to which party they are specific. -

    20.50 The link for adding an event should clearly indicate whether +

    20.50 The link for adding an event should clearly indicate whether a party-specific item or a personal item will be created.

    VI.C Requirements: Managing Party-Specific Events

    -30 Managing Party-Specific Events -

    30.10 If the user has write permission to any parties, when he +30 Managing Party-Specific Events +

    30.10 If the user has write permission to any parties, when he chooses to add an event, the choice of which party to associate with that event is given. -

    30.20 There should also be a page where permissions of read, +

    30.20 There should also be a page where permissions of read, write, approve, and delete can be given to different parties -

    30.30 There should be a link to the admin page for the group. -

    30.40 There should be a way to delete the calendar. This +

    30.30 There should be a link to the admin page for the group. +

    30.40 There should be a way to delete the calendar. This route should involve passing the user through a confirmation dialog.

    VI.D Requirements: Calendar Administration

    -40 Calendar Administration -

    40.10 Calendar User Privilege Administration -

    40.10.10 Cal Admin must have access to pages where permissions +40 Calendar Administration +

    40.10 Calendar User Privilege Administration +

    40.10.10 Cal Admin must have access to pages where permissions can be set for different parties -

    40.10.20 Cal Admin can also add new user party/groups/person +

    40.10.20 Cal Admin can also add new user party/groups/person to the entire calendar -

    40.10.30 Cal Admin can also add new user party/groups/person +

    40.10.30 Cal Admin can also add new user party/groups/person to indivdual calendar items -

    40.20 Calendar Items Administration -

    40.20.10 Provides the funcationality to delete, add, edit any +

    40.20 Calendar Items Administration +

    40.20.10 Provides the funcationality to delete, add, edit any item on the calendar -

    40.20.20 Provides the funcatinality to allow Calendar Administrator +

    40.20.20 Provides the funcatinality to allow Calendar Administrator to change the permissions on each calendar item. -

    40.20.20 Provides the funcatinality to allow Calendar Administrator +

    40.20.20 Provides the funcatinality to allow Calendar Administrator to change the default permissions of the entire calendar

    VI.E Requirements: API

    -50 API -

    50.10 Calendar Events Manipulation -

    50.10.10 Provide a function to add a new item to a calendar. +50 API +

    50.10 Calendar Events Manipulation +

    50.10.10 Provide a function to add a new item to a calendar. This function should support specifying all the values that can be specified in the 'add item' form. It should allow creating either a user or a party-specific item. Iit should support specifying a mapping between the new item and an arbitrary object in the database. -

    50.20 Calendar Views -

    50.20.10 Provide a function to generate the HTML for the list +

    50.20 Calendar Views +

    50.20.10 Provide a function to generate the HTML for the list view. -

    50.20.20 Provide a function to generate the HTML for the day +

    50.20.20 Provide a function to generate the HTML for the day view. -

    50.20.30 Provide a function to generate the HTML for the week +

    50.20.30 Provide a function to generate the HTML for the week view. -

    50.20.40 Provide a function to generate the HTML for the month +

    50.20.40 Provide a function to generate the HTML for the month view. -

    50.20.50 Provide a function to generate the HTML for the year +

    50.20.50 Provide a function to generate the HTML for the year view. -

    50.20.60 Provide a function to generate the HTML for the calendar +

    50.20.60 Provide a function to generate the HTML for the calendar navigation. -

    50.20.70 Provide a function to generate the HTML for the complete +

    50.20.70 Provide a function to generate the HTML for the complete calendar.

    VII. Revision History

    Index: openacs-4/packages/acs-templating/resources/forms/blue.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/resources/forms/blue.adp,v diff -u -N -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-templating/resources/forms/blue.adp 16 Jun 2015 08:57:09 -0000 1.4 +++ openacs-4/packages/acs-templating/resources/forms/blue.adp 22 Jun 2016 07:48:43 -0000 1.4.2.1 @@ -13,7 +13,7 @@ - @elements.section@ + @elements.section@ @@ -35,7 +35,7 @@ - @elements.label;noquote@   + @elements.label;noquote@  
      
    @@ -57,7 +57,7 @@
    - \@formerror.@elements.id@;noquote\@ + \@formerror.@elements.id@;noquote\@
    @@ -73,7 +73,7 @@
    \@formerror.@elements.id@;noquote\@ + color="red">\@formerror.@elements.id@;noquote\@
    Index: openacs-4/packages/acs-templating/resources/forms/coddo.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/resources/forms/coddo.adp,v diff -u -N -r1.8 -r1.8.10.1 --- openacs-4/packages/acs-templating/resources/forms/coddo.adp 29 Jul 2008 19:22:24 -0000 1.8 +++ openacs-4/packages/acs-templating/resources/forms/coddo.adp 22 Jun 2016 07:48:43 -0000 1.8.10.1 @@ -9,7 +9,7 @@ - @elements.section@ + @elements.section@ @@ -73,7 +73,7 @@ - + Index: openacs-4/packages/acs-templating/resources/forms/configuration.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/resources/forms/configuration.adp,v diff -u -N -r1.6 -r1.6.10.1 --- openacs-4/packages/acs-templating/resources/forms/configuration.adp 29 Jul 2008 19:22:24 -0000 1.6 +++ openacs-4/packages/acs-templating/resources/forms/configuration.adp 22 Jun 2016 07:48:43 -0000 1.6.10.1 @@ -17,7 +17,7 @@ - @elements.section@ + @elements.section@
    Index: openacs-4/packages/acs-templating/resources/forms/grid.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/resources/forms/grid.adp,v diff -u -N -r1.9 -r1.9.2.1 --- openacs-4/packages/acs-templating/resources/forms/grid.adp 10 Jun 2015 12:29:17 -0000 1.9 +++ openacs-4/packages/acs-templating/resources/forms/grid.adp 22 Jun 2016 07:48:43 -0000 1.9.2.1 @@ -1,11 +1,11 @@ - + - + @@ -42,7 +42,7 @@
    @form_properties.title@@form_properties.title@  
    No items
    No items
    -
    \@formerror.@elements.id@\@
    +
    \@formerror.@elements.id@\@
    @@ -52,8 +52,8 @@ -
    - \@formerror.@elements.id@\@
    +
    + \@formerror.@elements.id@\@
    Index: openacs-4/packages/acs-templating/resources/forms/inline.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/resources/forms/inline.adp,v diff -u -N -r1.4 -r1.4.12.1 --- openacs-4/packages/acs-templating/resources/forms/inline.adp 21 Nov 2007 14:08:44 -0000 1.4 +++ openacs-4/packages/acs-templating/resources/forms/inline.adp 22 Jun 2016 07:48:43 -0000 1.4.12.1 @@ -77,7 +77,7 @@
    - \@formerror.@elements.id@;noquote\@ + \@formerror.@elements.id@;noquote\@
    @@ -86,7 +86,7 @@

    - +

    Index: openacs-4/packages/acs-templating/resources/forms/plainest.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/resources/forms/plainest.adp,v diff -u -N -r1.8 -r1.8.2.1 --- openacs-4/packages/acs-templating/resources/forms/plainest.adp 10 Jun 2015 12:29:17 -0000 1.8 +++ openacs-4/packages/acs-templating/resources/forms/plainest.adp 22 Jun 2016 07:48:43 -0000 1.8.2.1 @@ -13,7 +13,7 @@ - @elements.section@ + @elements.section@ @@ -33,7 +33,7 @@ - @elements.label;noquote@   + @elements.label;noquote@  
      
    @@ -51,7 +51,7 @@
    - \@formerror.@elements.id@;noquote\@ + \@formerror.@elements.id@;noquote\@
    @@ -67,7 +67,7 @@
    \@formerror.@elements.id@;noquote\@ + color="red">\@formerror.@elements.id@;noquote\@
    Index: openacs-4/packages/acs-templating/resources/forms/tiny-plain.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/resources/forms/tiny-plain.adp,v diff -u -N -r1.6 -r1.6.4.1 --- openacs-4/packages/acs-templating/resources/forms/tiny-plain.adp 10 Oct 2012 10:08:20 -0000 1.6 +++ openacs-4/packages/acs-templating/resources/forms/tiny-plain.adp 22 Jun 2016 07:48:43 -0000 1.6.4.1 @@ -37,11 +37,11 @@ - + @elements.label;noquote@ - +    @@ -91,7 +91,7 @@
    - \@formerror.@elements.id@;noquote\@ + \@formerror.@elements.id@;noquote\@
    @@ -100,7 +100,7 @@

    - +

    Index: openacs-4/packages/acs-templating/resources/forms/wizard.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/resources/forms/wizard.adp,v diff -u -N -r1.13 -r1.13.2.1 --- openacs-4/packages/acs-templating/resources/forms/wizard.adp 16 Jun 2015 08:57:09 -0000 1.13 +++ openacs-4/packages/acs-templating/resources/forms/wizard.adp 22 Jun 2016 07:48:43 -0000 1.13.2.1 @@ -11,7 +11,7 @@ - @elements.section;noquote@ + @elements.section;noquote@ @@ -27,11 +27,11 @@ - @elements.label;noquote@ + @elements.label;noquote@ - @elements.label@   + @elements.label@  
      
    @@ -62,7 +62,7 @@
    - \@formerror.@elements.id@;noquote\@ + \@formerror.@elements.id@;noquote\@
    @@ -72,7 +72,7 @@
    - \@formerror.@elements.id@;noquote\@
    + \@formerror.@elements.id@;noquote\@
    @@ -83,7 +83,7 @@
    \@formerror.@elements.id@;noquote\@ + color="red">\@formerror.@elements.id@;noquote\@
    Index: openacs-4/packages/acs-templating/resources/lists/courses.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/resources/lists/courses.adp,v diff -u -N -r1.3 -r1.3.12.1 --- openacs-4/packages/acs-templating/resources/lists/courses.adp 14 May 2007 20:30:27 -0000 1.3 +++ openacs-4/packages/acs-templating/resources/lists/courses.adp 22 Jun 2016 07:48:43 -0000 1.3.12.1 @@ -26,7 +26,7 @@   \@paginator_pages.page@ -   \@paginator_pages.page@ +   \@paginator_pages.page@
    @@ -234,7 +234,7 @@   \@paginator_pages.page@ -   \@paginator_pages.page@ +   \@paginator_pages.page@
    Index: openacs-4/packages/acs-templating/resources/lists/listed-filters.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/resources/lists/listed-filters.adp,v diff -u -N -r1.2 -r1.2.8.1 --- openacs-4/packages/acs-templating/resources/lists/listed-filters.adp 10 Feb 2010 23:16:17 -0000 1.2 +++ openacs-4/packages/acs-templating/resources/lists/listed-filters.adp 22 Jun 2016 07:48:43 -0000 1.2.8.1 @@ -2,7 +2,7 @@ - Filtered by: + Filtered by: , @filters.filter_label@: @filters.label@ Index: openacs-4/packages/acs-templating/resources/messages/datasources.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/resources/messages/datasources.adp,v diff -u -N -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/resources/messages/datasources.adp 10 Jun 2015 12:29:17 -0000 1.3 +++ openacs-4/packages/acs-templating/resources/messages/datasources.adp 22 Jun 2016 07:48:43 -0000 1.3.2.1 @@ -4,7 +4,7 @@

    Data sources for @code_stub@.acs

    -@datasources.name@ +@datasources.name@ @@ -25,7 +25,7 @@
    Type:@datasources.structure@
    Comments:@datasources.comment@
    - +
    @datasources.input_name@  @datasources.input_type@; @datasources.input_comment@
    @datasources.input_name@  @datasources.input_type@; @datasources.input_comment@
    Index: openacs-4/packages/acs-templating/www/admin/index.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/admin/index.html,v diff -u -N -r1.1.1.1 -r1.1.1.1.30.1 --- openacs-4/packages/acs-templating/www/admin/index.html 13 Mar 2001 22:59:27 -0000 1.1.1.1 +++ openacs-4/packages/acs-templating/www/admin/index.html 22 Jun 2016 07:48:43 -0000 1.1.1.1.30.1 @@ -7,7 +7,7 @@

    Index of acs-templating/admin

    - test
    + test

    Christian Brechbühler
    Index: openacs-4/packages/acs-templating/www/admin/test/index.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/admin/test/index.html,v diff -u -N -r1.1.1.1 -r1.1.1.1.30.1 --- openacs-4/packages/acs-templating/www/admin/test/index.html 13 Mar 2001 22:59:27 -0000 1.1.1.1 +++ openacs-4/packages/acs-templating/www/admin/test/index.html 22 Jun 2016 07:48:43 -0000 1.1.1.1.30.1 @@ -7,11 +7,11 @@

    Index of acs-templating/admin/test

    - include-0
    - if
    - chain_frac-0
    - chain_frac-1
    - chain_frac-2
    + include-0
    + if
    + chain_frac-0
    + chain_frac-1
    + chain_frac-2

    Christian Brechbuehler
    Index: openacs-4/packages/acs-templating/www/doc/design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/design.html,v diff -u -N -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-templating/www/doc/design.html 16 Jun 2015 08:53:38 -0000 1.4 +++ openacs-4/packages/acs-templating/www/doc/design.html 22 Jun 2016 07:48:43 -0000 1.4.2.1 @@ -54,7 +54,7 @@
    • - A common solution. Programmers and designers + A common solution. Programmers and designers should only have to learn a single system that serves as a UI substrate for all the functionally specific modules used on a site. The system should not make any @@ -66,8 +66,8 @@

    • - Separation of code (Tcl, Java and SQL) and layout - (HTML). Programmers should be able to specify the + Separation of code (Tcl, Java and SQL) and layout + (HTML). Programmers should be able to specify the data sources and other properties of the template independently of the HTML template used to present the data. HTML authors should be to able to write templates @@ -78,7 +78,7 @@

    • - Separation of page components. There should be + Separation of page components. There should be provisions so that pages can be broken into discrete components to simplify maintenance of the HTML code and allow for reuse in different contexts. Examples of @@ -90,7 +90,7 @@

    • - Global control over presentation. There should be + Global control over presentation. There should be a way to define one or more standard master templates used by most pages on a site, so that changes to the overall look and feel of a site can be made in one @@ -99,7 +99,7 @@

    • - Dynamic selection of presentation style. Given + Dynamic selection of presentation style. Given that the same data may be presented in many different ways, there should be a general mechanism for selecting a specific presentation (including file format, layout, @@ -110,7 +110,7 @@

    • - Usability. Programmers should be able to develop + Usability. Programmers should be able to develop template specifications using their standard tools for writing and maintaining code on the server. HTML authors should be able to access information about template @@ -344,14 +344,14 @@

      Below is a diagram of the typical call stack when processing a page without dependent pages. To conform to the Tcl notion of - what's up and down (as in upvar), the stack grows down. + what's up and down (as in upvar), the stack grows down.

      - - - + + + @@ -363,7 +363,7 @@ - +
      LevelProcedureArgumentsLevelProcedureArguments
      #1rp_handler
      #2rp_serve_abstract_file/web/service/www/page {}
      (6) template::adp_prepare
      #5
      #5 template::code::tcl::/web/service/www/page
      @@ -485,7 +485,7 @@

      XII. Revision History

      - +
      Index: openacs-4/packages/acs-templating/www/doc/designer-guide.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/designer-guide.adp,v diff -u -N -r1.2.2.2 -r1.2.2.3 --- openacs-4/packages/acs-templating/www/doc/designer-guide.adp 9 Jun 2016 13:03:12 -0000 1.2.2.2 +++ openacs-4/packages/acs-templating/www/doc/designer-guide.adp 22 Jun 2016 07:48:43 -0000 1.2.2.3 @@ -13,11 +13,11 @@ data prepared by the developer.The tags allow authors to accomplish four basic tasks that are not possible with standard HTML:

        -
      • Embed a dynamic variable in a template (var).
      • Repeat a template section for each object in a dynamic list of -objects (multiple, -grid).
      • Output different template sections depending on the value of -one or more dynamic variables (if).
      • Provide a mechanism for building complete pages from multiple -component templates (include).
      • +
      • Embed a dynamic variable in a template (var).
      • Repeat a template section for each object in a dynamic list of +objects (multiple, +grid).
      • Output different template sections depending on the value of +one or more dynamic variables (if).
      • Provide a mechanism for building complete pages from multiple +component templates (include).

      A reasonably skilled template author should be able to implement a template without any assistance from the developer, other than @@ -49,8 +49,8 @@ where users may assemble different types of content to their liking.

      (graphic)

      -

      See include and -master. See also Building reusable layout components and +

      See include and +master. See also Building reusable layout components and Using master templates.

      Property Declarations

      Template authors need a simple mechanism for declaring @@ -60,13 +60,13 @@ include a search box. The data dictionary specifies available properties as well as the set of valid values when appropriate.

      (graphic)

      -

      See property.

      +

      See property.

      Conditional Insertion

      Designers often need to tailor the layout depending on the specific data being presented. For example, when presenting a list of library books that a user has checked out, the designer might want to highlight the overdue ones in red.

      -

      See if..else.

      +

      See if..else.

      Iteration

      Dynamic pages often present lists of values or records, each of which typically represents the results of a database query. @@ -87,9 +87,9 @@

      To accomodate these type of scenarios, the template parser sets some additional variables that the designer can reference to vary the layout from item to item.

      -

      See multiple, -group, grid.

      - +

      See multiple, +group, grid.

      +

      Notes

      • Template tags are processed by the server each time a page is @@ -102,8 +102,8 @@ However, if a page layout depends on the presence or absence of whitespace between HTML tags for proper display, then special care must be taken with dynamic tags to avoid adding whitespace.

        When placed on a line by themselves, tags that are containers -for template sections (grid, if, and -multiple) will cause newlines to be added to the page at +for template sections (grid, if, and +multiple) will cause newlines to be added to the page at the beginning and end of the section. This can be avoided by crowding the start and end tags like so:

         <td><if %x% eq 5><img src="five.gif"></if>
        Index: openacs-4/packages/acs-templating/www/doc/designer-guide.html
        ===================================================================
        RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/designer-guide.html,v
        diff -u -N -r1.1.1.1 -r1.1.1.1.30.1
        --- openacs-4/packages/acs-templating/www/doc/designer-guide.html	13 Mar 2001 22:59:27 -0000	1.1.1.1
        +++ openacs-4/packages/acs-templating/www/doc/designer-guide.html	22 Jun 2016 07:48:43 -0000	1.1.1.1.30.1
        @@ -22,18 +22,18 @@
         
        • Embed a dynamic variable in a template -(var). +(var).
        • Repeat a template section for each object in a dynamic list of objects -(multiple, - grid). +(multiple, + grid).
        • Output different template sections depending on the value of one or more -dynamic variables (if). +dynamic variables (if).
        • Provide a mechanism for building complete pages from multiple component templates -(include). +(include).
        @@ -77,8 +77,8 @@

        (graphic)

        -

        See include and master. See also See include and master. See also Building reusable layout components and Using master templates. @@ -95,7 +95,7 @@

        (graphic)

        -

        See property.

        +

        See property.

        Conditional Insertion

        @@ -104,7 +104,7 @@ books that a user has checked out, the designer might want to highlight the overdue ones in red.

        -

        See if..else.

        +

        See if..else.

        Iteration

        @@ -131,10 +131,10 @@ some additional variables that the designer can reference to vary the layout from item to item.

        -

        See multiple, - group, - grid.

        -

        +

        See multiple, + group, + grid.

        +

        Notes

        @@ -154,7 +154,7 @@ care must be taken with dynamic tags to avoid adding whitespace.

        When placed on a line by themselves, tags that are containers for -template sections (grid, if, and multiple) +template sections (grid, if, and multiple) will cause newlines to be added to the page at the beginning and end of the section. This can be avoided by crowding the start and end tags like so: @@ -169,7 +169,7 @@ template later.

      • - Caution:   + Caution:   Do not write to the connection. Specifically, if you must use the <% %> tag, do not call ns_puts, because it will not work the same way as in AOLserver's ADP Index: openacs-4/packages/acs-templating/www/doc/index.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/index.html,v diff -u -N -r1.6.2.2 -r1.6.2.3 --- openacs-4/packages/acs-templating/www/doc/index.html 21 Aug 2015 10:28:47 -0000 1.6.2.2 +++ openacs-4/packages/acs-templating/www/doc/index.html 22 Jun 2016 07:48:43 -0000 1.6.2.3 @@ -12,7 +12,7 @@

        Document overview

        -
      Document Revision # Action Taken, Notes
      +
      Index: openacs-4/packages/acs-templating/www/doc/install.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/install.adp,v diff -u -N -r1.2.2.2 -r1.2.2.3 --- openacs-4/packages/acs-templating/www/doc/install.adp 9 Jun 2016 13:03:12 -0000 1.2.2.2 +++ openacs-4/packages/acs-templating/www/doc/install.adp 22 Jun 2016 07:48:43 -0000 1.2.2.3 @@ -26,11 +26,11 @@

      The distribution consists of four subdirectories:

      1. -demo: A set of sample templates and supporting +demo: A set of sample templates and supporting files.
      2. -doc: Documentation and tutorials.
      3. -tcl: The Tcl module.
      4. -resources: Sitewide style templates for forms +doc: Documentation and tutorials.
      5. +tcl: The Tcl module.
      6. +resources: Sitewide style templates for forms and error messages and associated assets.

      You can also untar (or check out) the distribution somewhere @@ -40,10 +40,10 @@

      Installing the Tcl module

      The templating system code is a Tcl-only module for AOLserver. For AOLserver to load the module source code, you must move, copy -or symlink the tcl directory in the templating system +or symlink the tcl directory in the templating system distribution to the private Tcl library of your AOLserver -installation (as indicated by the Library parameter in the -ns/server/myserver/tcl section of the AOLserver +installation (as indicated by the Library parameter in the +ns/server/myserver/tcl section of the AOLserver configuration file):

       $ cd /web/myserver/tcl
      @@ -66,7 +66,7 @@
       ns_param   nslog           nslog.so
       ns_param   ats          Tcl
       
      -

      Note that you should replace ats with whatever you +

      Note that you should replace ats with whatever you named the directory or symlink for the templating code within your private Tcl library.

      You will also need to ensure that the "fancy" ADP parser is the @@ -82,31 +82,31 @@

      Optional Configuration

      The templating system recognizes two optional parameters in the AOLserver configuration file in the -ns/server/yourserver/ats section:

      +ns/server/yourserver/ats section:

      Requirements What the template system should do for you.
      - +generic (uses the ns_db API in conjunction with +any AOLserver RDBMS driver). The default is Oracle. - - - +etc. Defaults to $::acs::pageroot/ats/resources.
      DatabaseInterfaceSpecifies the set of procedures to use for accessing a +DatabaseInterfaceSpecifies the set of procedures to use for accessing a relational database from the templating system. Two interfaces are -supplied with the system: oracle (uses the ns_ora +supplied with the system: oracle (uses the ns_ora API in conjunction with the AOLserver Oracle driver) and -generic (uses the ns_db API in conjunction with -any AOLserver RDBMS driver). The default is Oracle.
      ShowCompiledTemplatesPEnables a filter on the cmp extension so that the +ShowCompiledTemplatesPEnables a filter on the cmp extension so that the compiled Tcl code for any template may be viewed in a browser for debugging purposes. The default is 0 (disabled).
      ShowDataDictionariesPEnables a filter on the dat extension so that +ShowDataDictionariesPEnables a filter on the dat extension so that documentation directives in Tcl scripts may be extracted and viewed in a browser. The default is 1 (enabled).
      ResourcePathSpecifies the absolute path to the system templates +ResourcePathSpecifies the absolute path to the system templates directory, containing sitewide styles for forms, system messages, -etc. Defaults to $::acs::pageroot/ats/resources.

      Testing the System

      -

      To test the system, run the script demo/demo.sql to +

      To test the system, run the script demo/demo.sql to create and populate a simple table in your database.

      Save the configuration file and restart the server. Use the samples included in the distribution to test whether the system is Index: openacs-4/packages/acs-templating/www/doc/install.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/install.html,v diff -u -N -r1.2 -r1.2.4.1 --- openacs-4/packages/acs-templating/www/doc/install.html 12 Apr 2013 16:12:57 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/install.html 22 Jun 2016 07:48:43 -0000 1.2.4.1 @@ -4,7 +4,7 @@

      Installation

      - Templating System + Templating System

      The templating system may be used alone or in conjunction with @@ -36,10 +36,10 @@

      The distribution consists of four subdirectories:

        -
      1. demo: A set of sample templates and supporting files. -
      2. doc: Documentation and tutorials. -
      3. tcl: The Tcl module. -
      4. resources: Sitewide style templates for forms and +
      5. demo: A set of sample templates and supporting files. +
      6. doc: Documentation and tutorials. +
      7. tcl: The Tcl module. +
      8. resources: Sitewide style templates for forms and error messages and associated assets.
      @@ -52,10 +52,10 @@

      The templating system code is a Tcl-only module for AOLserver. For AOLserver to load the module source code, you must move, copy or -symlink the tcl directory in the templating system +symlink the tcl directory in the templating system distribution to the private Tcl library of your AOLserver installation -(as indicated by the Library parameter in the -ns/server/myserver/tcl section of the AOLserver configuration +(as indicated by the Library parameter in the +ns/server/myserver/tcl section of the AOLserver configuration file):

      $ cd /web/myserver/tcl
      @@ -69,16 +69,16 @@
       
      [ns/server/myserver/modules]
       nssock=nssock.so
       nslog=nslog.so
      -ats=Tcl
      +ats=Tcl

      or if you are using the new configuration file format:

      ns_section "ns/server/${server}/modules"
       ns_param   nssock          nssock.so
       ns_param   nslog           nslog.so
      -ns_param   ats          Tcl
      +ns_param ats Tcl -

      Note that you should replace ats with whatever you named +

      Note that you should replace ats with whatever you named the directory or symlink for the templating code within your private Tcl library.

      @@ -96,41 +96,41 @@

      The templating system recognizes two optional parameters in the AOLserver configuration file in the -ns/server/yourserver/ats section:

      +ns/server/yourserver/ats section:

      - +
      - + +Oracle. - - + - - + - - + +$::acs::pageroot/ats/resources.
      DatabaseInterfaceDatabaseInterface Specifies the set of procedures to use for accessing a relational database from the templating system. Two interfaces are supplied with -the system: oracle (uses the ns_ora API in conjunction -with the AOLserver Oracle driver) and generic (uses the ns_db +the system: oracle (uses the ns_ora API in conjunction +with the AOLserver Oracle driver) and generic (uses the ns_db API in conjunction with any AOLserver RDBMS driver). The default is -Oracle.
      ShowCompiledTemplatesPEnables a filter on the cmp extension so that the compiled +ShowCompiledTemplatesPEnables a filter on the cmp extension so that the compiled Tcl code for any template may be viewed in a browser for debugging purposes. The default is 0 (disabled).
      ShowDataDictionariesPEnables a filter on the dat extension so that documentation +ShowDataDictionariesPEnables a filter on the dat extension so that documentation directives in Tcl scripts may be extracted and viewed in a browser. The default is 1 (enabled).
      ResourcePathSpecifies the absolute path to the system templates directory, +ResourcePathSpecifies the absolute path to the system templates directory, containing sitewide styles for forms, system messages, etc. Defaults to -$::acs::pageroot/ats/resources.

      Testing the System

      -

      To test the system, run the script demo/demo.sql to create +

      To test the system, run the script demo/demo.sql to create and populate a simple table in your database.

      Save the configuration file and restart the server. Use the samples Index: openacs-4/packages/acs-templating/www/doc/introduction.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/introduction.html,v diff -u -N -r1.1.1.1 -r1.1.1.1.30.1 --- openacs-4/packages/acs-templating/www/doc/introduction.html 13 Mar 2001 22:59:27 -0000 1.1.1.1 +++ openacs-4/packages/acs-templating/www/doc/introduction.html 22 Jun 2016 07:48:43 -0000 1.1.1.1.30.1 @@ -4,7 +4,7 @@

      Goals

      - Templating System + Templating System

      The overall goal of the templating system is to provide the @@ -13,41 +13,41 @@

        -
      • A common solution. Programmers and designers should only +

      • A common solution. Programmers and designers should only have to learn a single system that serves as a UI substrate for all the functionally specific modules used on a site. The system should not make any assumptions about how pages should look or function. Designers should be able to change the default presentation of any module using a single metholodogy with minimal exposure to code.

        -
      • Separation of code (Tcl, Java and SQL) and layout (HTML). +

      • Separation of code (Tcl, Java and SQL) and layout (HTML). Programmers should be able to specify the data sources and other properties of the template independently of the HTML template used to present the data. HTML authors should be able to write templates that reference the data sources and properties without further intervention from the programmer to produce a finished page.

        -
      • Separation of page components. There should be +

      • Separation of page components. There should be provisions so that pages can be broken into discrete components to simplify maintenance of the HTML code and allow for reuse in different contexts. Examples of common page components include a navigation bar, a search box, or a section of a report or story. Another common example is a portal page that allows the user to choose from a palette of features to display.

        -
      • Global control over presentation. There should be a way to +

      • Global control over presentation. There should be a way to define one or more standard master templates used by most pages on a site, so that changes to the overall look and feel of a site can be made in one place.

        -
      • Dynamic selection of presentation style. Given that the +

      • Dynamic selection of presentation style. Given that the same data may be presented in many different ways, there should be a general mechanism for selecting a specific presentation (including file format, layout, character set and language) for each page request, depending on characteristics such as user preference, location, browser type and/or device.

        -
      • Usability. Programmers should be able to develop template +

      • Usability. Programmers should be able to develop template specifications using their standard tools for writing and maintaining code on the server. HTML authors should be able to access information about template specifications and work on templates remotely without Index: openacs-4/packages/acs-templating/www/doc/migration.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/migration.adp,v diff -u -N -r1.3.2.9 -r1.3.2.10 --- openacs-4/packages/acs-templating/www/doc/migration.adp 9 Jun 2016 13:03:12 -0000 1.3.2.9 +++ openacs-4/packages/acs-templating/www/doc/migration.adp 22 Jun 2016 07:48:43 -0000 1.3.2.10 @@ -46,7 +46,7 @@ Prefer this to writing a tcl proc that returns HTML.

      • Remember to remove backslashes where you had to escape special characters, as in
        -Nuts  \$2.70 \[<a href=\"shoppe\">buy</a>\]
        +Nuts  \$2.70 \[<a href="\"shoppe\">buy</a>\]
                   
         
      • @@ -409,15 +409,15 @@ # alert has been disabled set status "Disabled" set action " - <a href=\"/bboard/alert-reenable\"> - Re-enable</a>" + <a href="\"/bboard/alert-reenable\"> +" Re-enable</a>" } else { # alert is enabled set status " <font color=red>Enabled</font>" set action " - <a href=\"/bboard/alert-disable\"> - Disable</a>" + <a href="\"/bboard/alert-disable\"> +" Disable</a>" } append existing_alert_rows "<tr> Index: openacs-4/packages/acs-templating/www/doc/migration.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/migration.html,v diff -u -N -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/migration.html 27 Oct 2014 16:40:14 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/migration.html 22 Jun 2016 07:48:43 -0000 1.3.2.1 @@ -13,9 +13,9 @@

        In a Nutshell

        When templatizing a legacy tcl page, your task is to - separate code and graphical presentation. The latter goes + separate code and graphical presentation. The latter goes into an ADP file; it contains essentially HTML, augmented by a few - special tags and the @variable@ construct. + special tags and the @variable@ construct. The code goes into a Tcl script. In other words, a templated page consists of two files, a Tcl part that puts its results in data sources, and an ADP page (the template), into which these data @@ -66,7 +66,7 @@ Remember to remove backslashes where you had to escape special characters, as in
        Nuts  \$2.70 \[<a href=\"shoppe[<a href="\"shoppe\">buy</a>\]
         	  
        @@ -90,17 +90,17 @@ <form>. I reformatted it a bit to make three panes fit next to each other and to line up corresponding code.

        - +
        - - + + - - -
        old tcl codenewold tcl codenew
        packages/news/www/item-view.tcl packages/news/www/item-view.adp
        +
         # /packages/news/admin/index.tcl
         ad_page_contract {
        @@ -148,7 +148,7 @@
         return
         	  
        +
         
         ad_page_contract {
        @@ -195,7 +195,7 @@
         ad_return_template
         	  
        +
         
         
        @@ -249,17 +249,17 @@
             following example shows the part of the index page of
             the News module that uses the mechanism, not a whole page.
         
        -    
        +    
        - - + + - - - - - + + + - - -
        old tcl codenewold tcl codenew
        packages/news/www/index.tcl packages/news/www/index.adp
        +
         ad_page_contract {
         
        @@ -275,7 +275,7 @@
         }
         	  
        +
         ad_page_contract {
         
        @@ -293,19 +293,19 @@
           context_bar:onevalue
           subsite_id:onevalue
           subsite:multirow
        -  item:multirow
        +  item:multirow
           footer:onevalue
         }
         	  
         
        ..................
        +
         append body "
         <ul>
        @@ -319,8 +319,8 @@
             and (   expiration_date is null
                  or expiration_date > sysdate)
         } {
        -    append body "<li><a href=
        -	\"item-view?news_item_id="\
        +    append body "<li><a href="
        +	\"item-view?news_item_id="\
         	"$news_item_id\"
         	>$title</a>\n"
         
        @@ -341,13 +341,13 @@
         </ul>
         "
        +
         
         
         
         
        -db_multirow item news_items_select {
        +db_multirow item news_items_select {
             select news_item_id, title
             from news_items_obj
             where context_id = :subsite_id
        @@ -357,13 +357,13 @@
         }
         	  
        +
         
         <ul>
         
         
        -<multiple name=item>
        +<multiple name=item>
         
         
         
        @@ -372,12 +372,12 @@
         
         
           <li><a href=
        -      "item-view?news_item_id=<%
        -      %>@item.news_item_id@"
        -      >@item.title@</a>
        +      "item-view?news_item_id=<%
        +      %>@item.news_item_id@"
        +      >@item.title@</a>
         </multiple>
         
        -<if @item:rowcount@ eq 0>
        +<if @item:rowcount@ eq 0>
           <li>There are
           currently no news items
           available.
        @@ -423,25 +423,25 @@
             output from sql and also the output of tcl procedures using that
             value.
         
        -    
        +    
        - - + + - - - - - + + + - - -
        old tcl codenewold tcl codenew
        packages/acs-core-ui/www/pvt/alerts.tcl packages/acs-core-ui/www/pvt/alerts.adp
        +
         ad_page_contract {
             @cvs-id $Id$
         } {
         }	  
         	  
        +
         ad_page_contract {
             @cvs-id $Id$
        @@ -462,11 +462,11 @@
         	
         
        ..................
        +
         
         
        @@ -494,15 +494,15 @@
              # alert has been disabled 
              set status "Disabled"
              set action "
        -     <a href=\"/bboard/alert-reenable\">
        -     Re-enable</a>"
        +     <a href="\"/bboard/alert-reenable\">
        +"     Re-enable</a>"
            } else {
              # alert is enabled
              set status "
              <font color=red>Enabled</font>"
              set action "
        -     <a href=\"/bboard/alert-disable\">
        -     Disable</a>"
        +     <a href="\"/bboard/alert-disable\">
        +"     Disable</a>"
            }
         
            append existing_alert_rows "<tr>
        @@ -546,7 +546,7 @@
         }
         	  
        +
         set discussion_forum_alert_p 0
         
        @@ -596,7 +596,7 @@
         	  
         	  
        +
         
         
        Index: openacs-4/packages/acs-templating/www/doc/no-quote-upgrade.adp
        ===================================================================
        RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/no-quote-upgrade.adp,v
        diff -u -N -r1.3.2.3 -r1.3.2.4
        --- openacs-4/packages/acs-templating/www/doc/no-quote-upgrade.adp	9 Jun 2016 13:03:12 -0000	1.3.2.3
        +++ openacs-4/packages/acs-templating/www/doc/no-quote-upgrade.adp	22 Jun 2016 07:48:43 -0000	1.3.2.4
        @@ -24,20 +24,20 @@
         The change to the templating system can be expressed in one
         sentence:
         
        All variables are now quoted by default, except those -explicitly protected by ;noquote or -;literal;.
        +explicitly protected by ;noquote or +;literal;. This means that the only way your code can fail is if the new code quotes a variable which is not meant to be quoted. Which is where -;noquote +;noquote needs to be added. That's all porting effort that is required. Actually, the variables are subject to HTML-quoting -and internationalization. The suffix ;noquote +and internationalization. The suffix ;noquote means that the variable's content will be internationalized, but not -HTML-quoted, while ;no18n +HTML-quoted, while ;no18n means quote, but don't -internationalize. Finally ;literal +internationalize. Finally ;literal means: don't quote and don't internationalize.

        This is not hard because most variables will not be affected by @@ -47,11 +47,11 @@ The variables where this behavior is undesired are those that contain HTML which is expected to be included as part of the page, and those that are already quoted by Tcl code. Such -variables should be protected from quoting by the ;noquote +variables should be protected from quoting by the ;noquote modifier.

        The Most Common Cases.

        -The most common cases where you need to add ;noquote +The most common cases where you need to add ;noquote to the variable name are easy to recognize and identify.

        @@ -71,7 +71,7 @@

        ACS has a convenience function for creating hidden form variables, -export_form_vars +export_form_vars . It accepts a list of variables and returns the HTML code containing the hidden input tags that map variable names to variable values, as found in the Tcl environment. @@ -81,7 +81,7 @@ -The ADP will simply refer to the form_vars +The ADP will simply refer to the form_vars variable:
         <form>
        @@ -91,12 +91,12 @@
               
         
        -This will no longer work as intended because form_vars +This will no longer work as intended because form_vars will be, like any other variable, quoted, and the user will end up seeing raw HTML text of the hidden variables. Even worse, the browser will not be aware of these form fields, and the page will -not work. After protecting the variable with ;noquote +not work. After protecting the variable with ;noquote , everything works as expected:
        @@ -121,7 +121,7 @@
         

        Another example of widgets is the context bar often found on top of ACS pgages.

        Obviously, all widgets should be treated as HTML and therefore -adorned with the ;noquote qualifier. This also assumes +adorned with the ;noquote qualifier. This also assumes that the routines that build the widget are correctly written and that they will quote the components used to build the widget.

        @@ -132,13 +132,13 @@ HTML or text. If it is HTML, we transmit it as is; if not, we perform quoting, word-wrapping, etc. In both cases it is obvious that quoting performed by the templating system would be redundant, -so we must be careful to add ;noquote to the ADP.

        -

        The property and include Gotchas.

        +so we must be careful to add ;noquote to the ADP.

        +

        The property and include Gotchas.

        Transfer of parameters between included ADPs often requires manual -addition of ;noquote +addition of ;noquote . Let's review why. -

        The property tag is used to pass a piece of information +

        The property tag is used to pass a piece of information to the master template. This is used by the ADP whose writer consciously chose to let the master template handle a variable given by the Tcl code. Typically page titles, headings, and context @@ -166,14 +166,14 @@ to provide a "title" and a "heading" of the page in a standardized fashion. The obvious intention of our slave template is to allow its corresponding Tcl code to set a single variable, -title +title , which will be used for both title and heading. What's wrong with this code?

        The problem is that title gets quoted twice, once by the slave template, and once by the master template. This is the result of how the templating system works: every -occurrence of \@variable\@ is converted to -[ad_quotehtml $variable], even when it is +occurrence of \@variable\@ is converted to +[ad_quotehtml $variable], even when it is used only to set a property and you would expect the quoting to be suppressed.

        Implementation note: Ideally, the @@ -191,19 +191,19 @@ Over-quoting is sometimes hard to detect because things seem to work fine in most cases. To notice the problem in the example above (and in any other over-quoting example), the title needs to contain -one of the characters <, > or -&. If it does, they will appear quoted to the user +one of the characters <, > or +&. If it does, they will appear quoted to the user instead of appearing as-is.

        -

        Over-quoting is resolved by adding ;noquote to one of -the variables. We strongly recommend that you add ;literal -inside the property tag rather than in the master. The +

        Over-quoting is resolved by adding ;noquote to one of +the variables. We strongly recommend that you add ;literal +inside the property tag rather than in the master. The reason is that, first, it makes sense to do so because conceptually the master is the one that "shows" the variable, so it makes sense -that it gets to quote it. Secondly, a property tag is +that it gets to quote it. Secondly, a property tag is supposed to merely transfer a piece of text to the master; it is much cleaner and more maintainable if this transfer is defined to be non-lossy. This becomes important in practice when -there is a hierarchy of master templates -- e.g. one for +there is a hierarchy of master templates -- e.g. one for the package and one for the whole site.

        To reiterate, a bug-free version of the slave template looks like this:

        @@ -216,7 +216,7 @@
        -

        The exact same problems when the include statement +

        The exact same problems when the include statement passes some text. Here is an example:

        Including template:
        @@ -226,24 +226,24 @@
         <form action="do-kick" method=POST>
           Kick user \@name\@.<br>
           Reason: <textarea name=reason>\@reason\@</textarea><br>
        -  <input type=submit value="Kick">
        +  <input type="submit" value="Kick">
         </form>
               
         
        Here an include statement is used to include an HTML form widget -parts of which are defined with Tcl variables $id +parts of which are defined with Tcl variables $id and -$default_reason +$default_reason whose values presumably come from the database.

        What happens is that reason that prefills the -textarea is over-quoted. The reasons are the same as in +textarea is over-quoted. The reasons are the same as in the last example: it gets quoted once by the includer, and the second time by the included page. The fix is also similar: when you transfer non-constant text to an included page, make sure to add -;literal.

        +;literal.

        Including template, sans over-quoting:
         <include src="user-kick-form" id=\@kicked_id;literal\@ reason=\@default_reason;literal\@>
        @@ -259,16 +259,16 @@
         frequency of occurrence of the problem.
         
        1. Audit the template for variables that export form variables and -add ;noquote to them.
        2. More generally, audit the template for variables that are known +add ;noquote to them.
        3. More generally, audit the template for variables that are known to contain HTML, e.g. those that contain widgets or HTML content -provided by the user. Add ;noquote to them.
        4. Add ;literal to variables used inside the -property tag.
        5. Add ;noquote to textual variables whose values are -attributes to the include tag.
        6. Audit the template for occurrences of -<%= [ns_quotehtml \@variable\@] => -and replace them with \@variable\@.
        7. Audit the Tcl code for occurrences of ns_quotehtml. If +provided by the user. Add ;noquote to them.
        8. Add ;literal to variables used inside the +property tag.
        9. Add ;noquote to textual variables whose values are +attributes to the include tag.
        10. Audit the template for occurrences of +<%= [ns_quotehtml \@variable\@] => +and replace them with \@variable\@.
        11. Audit the Tcl code for occurrences of ns_quotehtml. If it is used to build an HTML component, leave it, but take note of the variable the result gets saved to. Otherwise, remove the -quoting.
        12. Add ;noquote to the "HTML component" variables noted +quoting.
        13. Add ;noquote to the "HTML component" variables noted in the previous step.
        @@ -287,28 +287,28 @@
      • HTML junk appearing in the page.
        Literal HTML visible to the user typically comes from an -"export_form_vars" or a widget variable that lacks -;noquote. To fix the problem, simply add ;noquote +"export_form_vars" or a widget variable that lacks +;noquote. To fix the problem, simply add ;noquote to the variable.
      • Over-quoting and under-quoting.
        To detect quoting defects, you need to assume an active role in naming your objects. The best way to do it is to create objects (bboard forums, messages, news items, etc.) with names that contain -the representation of an entity, e.g. "&copy;". This +the representation of an entity, e.g. "&copy;". This looks like the copyright SGML entity, and intentionally so. The testing consists of checking that the browser prints exactly what you typed in as the name. Thus if your forum/message/etc. is listed -as "&copy;", everything is OK. If it is listed as -"&amp;copy;", it means that the string was quoted +as "&copy;", everything is OK. If it is listed as +"&amp;copy;", it means that the string was quoted twice, i.e. over-quoted. Finally, if the entity is interpreted (shown as ©), it means that the string lacks quoting, i.e. it is under-quoted.

        To get rid of over-quoting, make sure that the variables don't -get quoted in transport, such as in the property -tag or as an attribute of the include tag. Also, make sure +get quoted in transport, such as in the property +tag or as an attribute of the include tag. Also, make sure that your Tcl code is not quoting the variable name.

        To get rid of under-quoting, make sure that your variable gets quoted exactly once. This can be achieved either by removing a -(presumably overzealous) ;noquote or by quoting the string +(presumably overzealous) ;noquote or by quoting the string from Tcl. The latter is necessary when building HTML components, such as a context bar, from strings that come from the database or from the user.

        Index: openacs-4/packages/acs-templating/www/doc/no-quote-upgrade.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/no-quote-upgrade.html,v diff -u -N -r1.2.2.1 -r1.2.2.2 --- openacs-4/packages/acs-templating/www/doc/no-quote-upgrade.html 20 Aug 2015 17:19:53 -0000 1.2.2.1 +++ openacs-4/packages/acs-templating/www/doc/no-quote-upgrade.html 22 Jun 2016 07:48:43 -0000 1.2.2.2 @@ -11,7 +11,7 @@ The variable substitution in the templating has been changed to become more friendly towards quoting. The rationale for the - change and the definition of terms like quoting are present + change and the definition of terms like quoting are present in the quoting article. As it discusses these concepts in some depths, we see no reason to repeat them here. Instead, we will assume that you have read the previous article @@ -31,17 +31,17 @@
        All variables are now quoted by default, except those explicitly - protected by ;noquote or ;literal;. + protected by ;noquote or ;literal;.
        This means that the only way your code can fail is if the new code quotes a variable which is not meant to be quoted. Which is where - ;noquote needs to be added. That's all porting effort + ;noquote needs to be added. That's all porting effort that is required. Actually, the variables are subject to -HTML-quoting and internationalization. The suffix ;noquote +HTML-quoting and internationalization. The suffix ;noquote means that the variable's content will be internationalized, but not -HTML-quoted, while ;no18n means quote, but don't - internationalize. Finally ;literal means: don't quote and +HTML-quoted, while ;no18n means quote, but don't + internationalize. Finally ;literal means: don't quote and don't internationalize. @@ -52,20 +52,20 @@ containing textual data that comes from the database or from the user) or are unaffected by quoting (numerical database IDs, etc.) The variables where this behavior is undesired are - those that contain HTML which is expected to be included - as part of the page, and those that are already quoted by + those that contain HTML which is expected to be included + as part of the page, and those that are already quoted by Tcl code. Such variables should be protected from quoting by - the ;noquote modifier. + the ;noquote modifier.

        The Most Common Cases.

        - The most common cases where you need to add ;noquote to + The most common cases where you need to add ;noquote to the variable name are easy to recognize and identify.

        - Hidden form variables. + Hidden form variables.
        Also known as "hidden input fields", hidden form variables are form fields with pre-defined values which are not shown to the @@ -84,7 +84,7 @@

      • ACS has a convenience function for creating hidden form variables, - export_form_vars. It accepts a list of variables and + export_form_vars. It accepts a list of variables and returns the HTML code containing the hidden input tags that map variable names to variable values, as found in the Tcl environment. In that case, the Tcl code would set the HTML code @@ -96,7 +96,7 @@ - The ADP will simply refer to the form_vars variable: + The ADP will simply refer to the form_vars variable:
        @@ -107,11 +107,11 @@
               
        - This will no longer work as intended because form_vars + This will no longer work as intended because form_vars will be, like any other variable, quoted, and the user will end up seeing raw HTML text of the hidden variables. Even worse, the browser will not be aware of these form fields, and the page will - not work. After protecting the variable with ;noquote, + not work. After protecting the variable with ;noquote, everything works as expected:
        @@ -124,51 +124,51 @@

        - Snippets of HTML produced by Tcl code, aka - widgets. + Snippets of HTML produced by Tcl code, aka + widgets.
        Normally we try to fit all HTML code into the ADP template and have the Tcl code handle the "logic" of the program. And yet, sometimes pieces of relatively convoluted HTML need to be included in many templates. In such cases, it makes sense to - generate the widget programmatically and include it into + generate the widget programmatically and include it into the template as a variable. A typical widget is a date entry widget which provides the user the input and selection boxes for year, month, and day, all of which default to the current date.

        - Another example of widgets is the context bar often found + Another example of widgets is the context bar often found on top of ACS pgages.

        Obviously, all widgets should be treated as HTML and therefore - adorned with the ;noquote qualifier. This also assumes + adorned with the ;noquote qualifier. This also assumes that the routines that build the widget are correctly - written and that they will quote the components used to + written and that they will quote the components used to build the widget.

        - Pieces of text that are already quoted. + Pieces of text that are already quoted.
        This quoting is usually part of a more general preparation for HTML rendering of the text. For instance, a bboard posting can be either HTML or text. If it is HTML, we transmit it as is; if not, we perform quoting, word-wrapping, etc. In both cases it is obvious that quoting performed by the templating system would - be redundant, so we must be careful to add ;noquote to + be redundant, so we must be careful to add ;noquote to the ADP. -

        The property and include Gotchas.

        +

        The property and include Gotchas.

        Transfer of parameters between included ADPs often requires manual - addition of ;noquote. Let's review why. + addition of ;noquote. Let's review why.

        - The property tag is used to pass a piece of information + The property tag is used to pass a piece of information to the master template. This is used by the ADP whose writer consciously chose to let the master template handle a variable given by the Tcl code. Typically page titles, headings, and context bars are handled this way. For example:

        - master: + master:
         <head>
           <title>@title@</title>
        @@ -178,7 +178,7 @@
           <slave>
         </body>
               
        - slave: + slave:
         <master>
         <property name="title">@title@</property>
        @@ -191,15 +191,15 @@
             templates to provide a "title" and a "heading" of the page in a
             standardized fashion.  The obvious intention of our slave template
             is to allow its corresponding Tcl code to set a single variable,
        -    title, which will be used for both title and heading.
        +    title, which will be used for both title and heading.
             What's wrong with this code?
         
             

        The problem is that title gets quoted twice, once by the slave template, and once by the master template. This is the result of how the templating system works: every - occurrence of @variable@ is converted to - [ad_quotehtml $variable], even when it + occurrence of @variable@ is converted to + [ad_quotehtml $variable], even when it is used only to set a property and you would expect the quoting to be suppressed. @@ -211,8 +211,8 @@ at the point where the value is passed from the Tcl code to the templating system. However, no such point in time exists because what in fact happens is that the template gets compiled - into code that simply takes what it needs from the - environment and then does the quoting. Properties are + into code that simply takes what it needs from the + environment and then does the quoting. Properties are passed to the master so that all the property variables are shoved into an environment; by the time the master template is executed, all information on which variable came from where @@ -221,34 +221,34 @@

        - This occurrence is often referred to as over-quoting. + This occurrence is often referred to as over-quoting. Over-quoting is sometimes hard to detect because things seem to work fine in most cases. To notice the problem in the example above (and in any other over-quoting example), the title needs - to contain one of the characters <, > or - &. If it does, they will appear quoted to the user + to contain one of the characters <, > or + &. If it does, they will appear quoted to the user instead of appearing as-is.

        - Over-quoting is resolved by adding ;noquote to one of + Over-quoting is resolved by adding ;noquote to one of the variables. We strongly recommend that you add - ;literal inside the property tag rather than + ;literal inside the property tag rather than in the master. The reason is that, first, it makes sense to do so because conceptually the master is the one that "shows" the variable, so it makes sense that it gets to quote it. Secondly, - a property tag is supposed to merely transfer + a property tag is supposed to merely transfer a piece of text to the master; it is much cleaner and more maintainable if this transfer is defined to be non-lossy. This becomes important in practice when there is a hierarchy of - master templates -- e.g. one for the package and one + master templates -- e.g. one for the package and one for the whole site.

        To reiterate, a bug-free version of the slave template looks like this:

        - slave sans over-quoting: + slave sans over-quoting:
         <master>
         <property name="doc(title)">@title;literal@</property>
        @@ -258,39 +258,39 @@
             

        - The exact same problems when the include statement + The exact same problems when the include statement passes some text. Here is an example:

        - Including template: + Including template:
         <include src="user-kick-form" id=@kicked_id@ reason=@default_reason@>
               
        - Included template: + Included template:
         <form action="do-kick" method=POST>
           Kick user @name@.<br>
           Reason: <textarea name=reason>@reason@</textarea><br>
        -  <input type=submit value="Kick">
        +  <input type="submit" value="Kick">
         </form>
               
        Here an include statement is used to include an HTML form widget - parts of which are defined with Tcl variables $id and - $default_reason whose values presumably come from the + parts of which are defined with Tcl variables $id and + $default_reason whose values presumably come from the database.

        What happens is that reason that prefills the - textarea is over-quoted. The reasons are the same as + textarea is over-quoted. The reasons are the same as in the last example: it gets quoted once by the includer, and the second time by the included page. The fix is also similar: when you transfer non-constant text to an included page, make - sure to add ;literal. + sure to add ;literal.

        - Including template, sans over-quoting: + Including template, sans over-quoting:
         <include src="user-kick-form" id=@kicked_id;literal@ reason=@default_reason;literal@>
               
        @@ -307,34 +307,34 @@
        1. Audit the template for variables that export form variables - and add ;noquote to them. + and add ;noquote to them.

        2. More generally, audit the template for variables that are known to contain HTML, e.g. those that contain widgets or HTML - content provided by the user. Add ;noquote to them. + content provided by the user. Add ;noquote to them.

        3. - Add ;literal to variables used inside the - property tag. + Add ;literal to variables used inside the + property tag.

        4. - Add ;noquote to textual variables whose values are - attributes to the include tag. + Add ;noquote to textual variables whose values are + attributes to the include tag.

        5. Audit the template for occurrences of - <%= [ns_quotehtml @variable@] => - and replace them with @variable@. + <%= [ns_quotehtml @variable@] => + and replace them with @variable@.

        6. - Audit the Tcl code for occurrences of ns_quotehtml. + Audit the Tcl code for occurrences of ns_quotehtml. If it is used to build an HTML component, leave it, but take note of the variable the result gets saved to. Otherwise, remove the quoting.

        7. - Add ;noquote to the "HTML component" variables noted + Add ;noquote to the "HTML component" variables noted in the previous step.
        @@ -352,39 +352,39 @@ watch out for.
          -
        • HTML junk appearing in the page.
          +
        • HTML junk appearing in the page.
          Literal HTML visible to the user typically comes from an - "export_form_vars" or a widget variable that lacks - ;noquote. To fix the problem, simply add - ;noquote to the variable. + "export_form_vars" or a widget variable that lacks + ;noquote. To fix the problem, simply add + ;noquote to the variable.

        • - Over-quoting and under-quoting.
          + Over-quoting and under-quoting.
          To detect quoting defects, you need to assume an active role in naming your objects. The best way to do it is to create objects (bboard forums, messages, news items, etc.) with names that contain the representation of an entity, - e.g. "&copy;". This looks like the copyright + e.g. "&copy;". This looks like the copyright SGML entity, and intentionally so. The testing consists of checking that the browser prints exactly what you typed in as the name. Thus if your forum/message/etc. is listed as - "&copy;", everything is OK. If it is listed as - "&amp;copy;", it means that the string was quoted + "&copy;", everything is OK. If it is listed as + "&amp;copy;", it means that the string was quoted twice, i.e. over-quoted. Finally, if the entity is interpreted (shown as ©), it means that the string lacks quoting, i.e. it is under-quoted.

          To get rid of over-quoting, make sure that the variables don't get quoted in transport, such as in the - property tag or as an attribute of the - include tag. Also, make sure that your Tcl code is + property tag or as an attribute of the + include tag. Also, make sure that your Tcl code is not quoting the variable name.

          To get rid of under-quoting, make sure that your variable gets quoted exactly once. This can be achieved either by - removing a (presumably overzealous) ;noquote or by + removing a (presumably overzealous) ;noquote or by quoting the string from Tcl. The latter is necessary when building HTML components, such as a context bar, from strings that come from the database or from the user. Index: openacs-4/packages/acs-templating/www/doc/requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/requirements.html,v diff -u -N -r1.2 -r1.2.2.1 --- openacs-4/packages/acs-templating/www/doc/requirements.html 27 Oct 2014 16:40:14 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/requirements.html 22 Jun 2016 07:48:43 -0000 1.2.2.1 @@ -21,7 +21,7 @@ The following is a requirements document for the ACS Templating System version 0.5. It has also been called Karl's Templates, the Dynamic Publishing System (DPS), and Stencil. The official package - name for the system is now acs-templating. + name for the system is now acs-templating.

          II. Vision Statement

          @@ -80,19 +80,19 @@ The template system is designed to be used by two classes of users: programmers and designers. In bulding a web site, programmers are generally responsible for defining and - implementing the application logic of the site, while + implementing the application logic of the site, while designers are more responsible for the - presentation. Generally speaking, the application logic + presentation. Generally speaking, the application logic generates data for the presentation to display to the user. The template system must provide mechanisms that supports both of these tasks and allows the designer and programmer to work seperately, but for their work to be combined at runtime into something that the user sees as a single page.

          - Thus, pages are naturally split into two parts. The logic - part executes application logic and generates data, and the - presentation part that specifies the layout of the page + Thus, pages are naturally split into two parts. The logic + part executes application logic and generates data, and the + presentation part that specifies the layout of the page and so on.

          @@ -102,8 +102,8 @@

        • A notation and API for the programmer specify the application logic and to generate the data to be displayed. In ACS, we - call the data that we wish to display a data source or - page property. Application logic is driven by the + call the data that we wish to display a data source or + page property. Application logic is driven by the inputs the page gathers from the user request (e.g. the HTTP request), and the computation that the page must perform on this input. This computation will generally create and @@ -224,8 +224,8 @@ 10.10.2 Use of Components

          To speed development and ensure consistency of design, template - authors are encouraged to assemble pages from distinct component - templates that may be recycled in different contexts. One typical + authors are encouraged to assemble pages from distinct component + templates that may be recycled in different contexts. One typical practice is to build a "master" template for an entire section of a site, with a common header, footer and sidebar layout. For each page request, the "content" template is incorporated dynamically @@ -255,9 +255,9 @@ specific data being presented. For example, when presenting a list of library books that a user has checked out, the designer might want to highlight the overdue ones in red. For this, designers - must have the ability to write simple program logic (Note: We + must have the ability to write simple program logic (Note: We run the risk of inventing our own language here, we must be - careful). + careful).

        • @@ -384,10 +384,10 @@

          VII. Revision History

          - - - - +
          Document Revision #Action Taken, Notes
          + + + Index: openacs-4/packages/acs-templating/www/doc/timing-1.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/timing-1.html,v diff -u -N -r1.2 -r1.2.2.1 --- openacs-4/packages/acs-templating/www/doc/timing-1.html 27 Oct 2014 16:40:14 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/timing-1.html 22 Jun 2016 07:48:43 -0000 1.2.2.1 @@ -79,13 +79,13 @@

          Invoking trace filter ds_trace_filter

          - That last phase is ended by - Done invoking trace filter ds_trace_filter (returning filter_ok) + That last phase is ended by + Done invoking trace filter ds_trace_filter (returning filter_ok)

          Total time

          - Overall, the templated pages are delivered faster. Forcing + Overall, the templated pages are delivered faster. Forcing the template system to always reread all files and to recompile the ADP part slows them down, as expected, but overall they are still faster than the Tcl-only page. Index: openacs-4/packages/acs-templating/www/doc/timing-2.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/timing-2.html,v diff -u -N -r1.2 -r1.2.2.1 --- openacs-4/packages/acs-templating/www/doc/timing-2.html 27 Oct 2014 16:40:15 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/timing-2.html 22 Jun 2016 07:48:43 -0000 1.2.2.1 @@ -13,7 +13,7 @@

          Here are the graphs for the 15 stages, and the log message of their beginning is written in the lower right of the graphs. - In comparison with the first + In comparison with the first measurement, the steeper slopes indicate much less variation in the measurements, which reflects the more reproducible conditions (essentially no other activity) on @@ -42,7 +42,7 @@

          Overall, the templated pages are delivered markedly - slower, by about 65ms. + slower, by about 65ms. Forcing the template system to always reread all files and to recompile the ADP part slows them down, as expected, but overall they are still faster than the Tcl-only page. Index: openacs-4/packages/acs-templating/www/doc/timing-3.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/timing-3.html,v diff -u -N -r1.2 -r1.2.2.1 --- openacs-4/packages/acs-templating/www/doc/timing-3.html 27 Oct 2014 16:40:15 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/timing-3.html 22 Jun 2016 07:48:43 -0000 1.2.2.1 @@ -46,8 +46,8 @@

          - In ACS 3.4.6, Tcl-only pages are sereved faster than in - 4.0 beta-2. The templated pages are delivered much slower. + In ACS 3.4.6, Tcl-only pages are sereved faster than in + 4.0 beta-2. The templated pages are delivered much slower. The first time the template system reads a templated page, it takes about 3 seconds! The result is cached, mitigating the problem a lot. Index: openacs-4/packages/acs-templating/www/doc/timing.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/timing.html,v diff -u -N -r1.2 -r1.2.2.1 --- openacs-4/packages/acs-templating/www/doc/timing.html 27 Oct 2014 16:40:15 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/timing.html 22 Jun 2016 07:48:43 -0000 1.2.2.1 @@ -38,15 +38,15 @@ into continued fractions. I created three versions:

          @@ -130,7 +130,7 @@

          Color Codes

          The different experiments are color coded as follows. -

          Document Revision #Action Taken, Notes When? By Whom?
          +
          Index: openacs-4/packages/acs-templating/www/doc/TclDocs/cm_widget.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/cm_widget.html,v diff -u -N -r1.1.1.1 -r1.1.1.1.30.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/cm_widget.html 13 Mar 2001 22:59:27 -0000 1.1.1.1 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/cm_widget.html 22 Jun 2016 07:48:43 -0000 1.1.1.1.30.1 @@ -23,7 +23,7 @@

          Method Detail

          -

          +

          * indicates required

          @@ -32,10 +32,10 @@

          -Private Methods:
          -

          nevernormalalways
          chain-frac-0
          +Private Methods:
          +
          cm_widget::validate_description -
            by Michael Pih +
            by Michael Pih
          @@ -44,13 +44,13 @@
          - Parameters: + Parameters: - - @@ -64,7 +64,7 @@

          -

          +

          * indicates required

          Index: openacs-4/packages/acs-templating/www/doc/TclDocs/cms_rel.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/cms_rel.html,v diff -u -N -r1.1.1.1 -r1.1.1.1.30.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/cms_rel.html 13 Mar 2001 22:59:27 -0000 1.1.1.1 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/cms_rel.html 22 Jun 2016 07:48:43 -0000 1.1.1.1.30.1 @@ -25,15 +25,15 @@

          Method Detail

          -

          +

          * indicates required

          -Public Methods:
          -
          value + value * + The submitted value of the description form element
          +Public Methods:
          +
          cms_rel::sort_child_item_order -
            by Michael Pih +
            by Michael Pih
          @@ -42,13 +42,13 @@
          - Parameters: + Parameters: - - @@ -60,9 +60,9 @@
          item_id + item_id * + The item for which to resort child items

          -
          +
          cms_rel::sort_related_item_order -
            by Michael Pih +
            by Michael Pih
          @@ -71,13 +71,13 @@
          - Parameters: + Parameters: - - @@ -95,7 +95,7 @@ -

          +

          * indicates required

          Index: openacs-4/packages/acs-templating/www/doc/TclDocs/content.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/content.html,v diff -u -N -r1.1.1.1 -r1.1.1.1.30.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/content.html 13 Mar 2001 22:59:27 -0000 1.1.1.1 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/content.html 22 Jun 2016 07:48:43 -0000 1.1.1.1.30.1 @@ -51,13 +51,13 @@

          Method Detail

          -

          +

          * indicates required

          -Public Methods:
          -
          item_id + item_id * + The item for which to resort related items
          +Public Methods:
          + @@ -68,34 +68,34 @@
          - Parameters: + Parameters:
          content::add_attribute_element
          - - - - - - - - @@ -107,7 +107,7 @@
          form_name + form_name * + The name of the ATS form object to which the element should be added.
          content_type + content_type * + The content type keyword to which this attribute belongs.
          attribute + attribute * + The name of the attribute, as represented in the attribute_name column of the acs_attributes table.
          attribute_data + attribute_data * + Optional nested list of parameter data for the the attribute (generated by get_attribute_params).

          -
          + @@ -118,33 +118,33 @@
          - Parameters: + Parameters:
          content::add_attribute_elements
          - - - - - -
          form_name + form_name * + The name of the ATS form object to which objects should be added.
          content_type + content_type * + The content type keyword for which attribute widgets should be added.
          revision_id + revision_id * + The revision from which default values should be queried
          -
          Returns: +
          Returns:
          The list of attributes that were added. @@ -154,7 +154,7 @@

          -
          + @@ -165,52 +165,52 @@
          - Parameters: + Parameters:
          content::add_basic_revision
          - - - - - -
          item_id + item_id * +
          revision_id + revision_id * +
          title + title * +
          -
          Options: +
          Options: - - + - - + - - + - - + @@ -222,7 +222,7 @@
          description +
          description
          mime_type +
          mime_type
          text +
          text
          tmpfile +
          tmpfile

          -
          + @@ -233,28 +233,28 @@
          - Parameters: + Parameters:
          content::add_child_relation_element
          - -
          form_name + form_name * + The name of the form
          -
          Options: +
          Options: - - + + none If present, creates a new form section for the element. - - + @@ -266,7 +266,7 @@
          section +
          section - none If present, creates a new form section for the element.
          label +
          label {Child relation tag} The label for the element

          -
          + @@ -277,13 +277,13 @@
          - Parameters: + Parameters:
          content::add_content
          - - @@ -295,7 +295,7 @@
          revision_id + revision_id * + The object ID of the revision to be updated.

          -
          + @@ -306,20 +306,20 @@
          - Parameters: + Parameters:
          content::add_content_element
          - - - - @@ -331,7 +331,7 @@
          form_name + form_name * + The name of the form to which the object should be added.
          content_method + content_method * + One of no_content, text_entry or file_upload

          -
          + @@ -342,20 +342,20 @@
          - Parameters: + Parameters:
          content::add_revision
          - - - - @@ -367,7 +367,7 @@
          form_name + form_name * + Name of the form from which to obtain attribute values. The form should include an item_id and revision_id.
          tmpfile + tmpfile * + Name of the temporary file containing the content to upload.

          -
          + @@ -378,41 +378,41 @@
          -
          Options: +
          Options:
          content::add_revision_form
          - - + - - + - - + - - + - - + - - + - - + @@ -424,7 +424,7 @@
          form_name +
          form_name The name of the ATS form object. Defaults to { new_item} .
          content_type +
          content_type The content_type of the item. Defaults to { content_revision} .
          content_method +
          content_method The method to use for uploading the content body. If the content type is text, defaults to text entry, otherwise defaults to file upload.
          item_id +
          item_id The item ID of the revision. Defaults to null (item_id must be set by the calling code).
          revision_id +
          revision_id The revision ID from which to draw default values. Defaults to the latest revision
          attributes +
          attributes A list of attribute names for which to create form elements.
          action +
          action The URL to which the form should redirect following a successful form submission.

          -
          + @@ -435,20 +435,20 @@
          - Parameters: + Parameters:
          content::copy_content
          - - - - @@ -460,7 +460,7 @@
          revision_id_src + revision_id_src * + The object ID of the revision with the content to be copied.
          revision_id_dest + revision_id_dest * + The object ID of the revision to be updated. copied.

          -
          + @@ -471,13 +471,13 @@
          - Parameters: + Parameters:
          content::get_attribute_enum_values
          - - @@ -489,7 +489,7 @@
          attribute_id + attribute_id * + The primary key of the attribute as in the attribute_id column of the acs_attributes table.

          -
          + @@ -500,13 +500,13 @@
          - Parameters: + Parameters:
          content::get_latest_revision
          - - @@ -518,7 +518,7 @@
          item_id + item_id * + The ID of the content item.

          -
          + @@ -535,7 +535,7 @@
          content::get_object_id

          -
          + @@ -546,26 +546,26 @@
          - Parameters: + Parameters:
          content::new_item
          - - - -
          form_name + form_name * + Name of the form from which to obtain item attributes, as well as attributes of the initial revision. The form should include an item_id, name and revision_id.
          tmpfile + tmpfile * + Name of the temporary file containing the content to upload for the initial revision.
          -
          See Also: +
          See Also:
          add_revision -
          @@ -574,7 +574,7 @@

          -
          + @@ -585,41 +585,41 @@
          -
          Options: +
          Options:
          content::new_item_form
          - - + - - + - - + - - + - - + - - + - - + @@ -631,7 +631,7 @@
          form_name +
          form_name The name of the ATS form object. Defaults to { new_item} .
          content_type +
          content_type The content_type of the item. Defaults to { content_revision} .
          content_method +
          content_method The method to use for uploading the content body. Valid values are { no_content} , { text_entry} , and { file_upload} . If the content type allows text, defaults to text entry, otherwise defaults to file upload.
          parent_id +
          parent_id The item ID of the parent. Defaults to null (Parent is the root folder).
          name +
          name The default name of the item. Default is an empty string (User must supply name).
          attributes +
          attributes A list of attribute names for which to create form elements.
          action +
          action The URL to which the form should redirect following a successful form submission.

          -
          + @@ -642,19 +642,19 @@
          - Parameters: + Parameters:
          content::validate_name
          - -
          form_name + form_name * + The name of the form (containing name and parent_id)
          -
          Returns: +
          Returns:
          0 if there are items with the same name, 1 otherwise @@ -669,8 +669,8 @@

          -Private Methods:
          -
          +Private Methods:
          + @@ -681,40 +681,40 @@
          - Parameters: + Parameters:
          content::add_revision_dml
          - - - - - - - -
          statement + statement * + The DML for the insert statement, specifying a bind variable for each column value.
          bind_vars + bind_vars * + An ns_set containing the values for all bind variables.
          tmpfile + tmpfile * + The server-side name of the file containing the body of the revision to upload into the content BLOB column of cr_revisions.
          filename + filename * + The client-side name of the file containing the body of the revision to upload into the content BLOB column of cr_revisions
          -
          See Also: +
          See Also:
          add_revision -
          @@ -723,7 +723,7 @@

          -
          + @@ -734,34 +734,34 @@
          - Parameters: + Parameters:
          content::attribute_insert_statement
          - - - - - - - - @@ -773,7 +773,7 @@
          content_type + content_type * + The content type of the item for which a new revision is being prepared.
          table_name + table_name * + The storage table of the content type.
          bind_vars + bind_vars * + The name of an ns_set in which to store the attribute values for the revision. (Typically duplicates the contents of {[ns_getform].}
          form_name + form_name * + The name of the ATS form object used to process the submission.

          -
          + @@ -784,20 +784,20 @@
          - Parameters: + Parameters:
          content::get_attribute_params
          - - - - @@ -809,7 +809,7 @@
          content_type + content_type * + The content type keyword to which this attribute belongs.
          attribute_name + attribute_name * + The name of the attribute, as represented in the attribute_name column of the acs_attributes table.

          -
          + @@ -820,20 +820,20 @@
          - Parameters: + Parameters:
          content::get_attributes
          - - - - @@ -845,7 +845,7 @@
          content_type + content_type * + The name of the content type (ACS Object Type) for which to obtain the list of attributes.
          args + args * + Names of columns to query. If no columns are specified, returns a simple list of attribute names.

          -
          + @@ -856,13 +856,13 @@
          - Parameters: + Parameters:
          content::get_default_content_method
          - - @@ -874,7 +874,7 @@
          content_type + content_type * + The content type for which an input method is needed.

          -
          + @@ -885,20 +885,20 @@
          - Parameters: + Parameters:
          content::get_sql_value
          - - - - @@ -910,7 +910,7 @@
          name + name * + The name of the column and bind variable (they should be the same).
          datatype + datatype * + The datatype of the column.

          -
          + @@ -921,19 +921,19 @@
          - Parameters: + Parameters:
          content::get_type_attribute_params
          - -
          args + args * + Any number of object types
          -
          Returns: +
          Returns:
          A list of attribute parameters nested by object_type, attribute_name and the is_html flag. For attributes with no parameters, there is a single entry with is_html as null. @@ -943,7 +943,7 @@

          -
          + @@ -954,27 +954,27 @@
          - Parameters: + Parameters:
          content::get_type_info
          - - - - - - @@ -986,7 +986,7 @@
          object_type + object_type * + Object type key for which info is required.
          ref + ref * + If no further arguments, name of the column value to return. If further arguments are specified, name of the array in which to store info in the calling
          args + args * + Column names to query.

          -
          + @@ -997,20 +997,20 @@
          - Parameters: + Parameters:
          content::get_widget_param_value
          - - - - @@ -1022,7 +1022,7 @@
          array_ref + array_ref * + The name of an array in the calling frame containing parameter data selected from the form metadata.
          content_type + content_type * + The current content {type;} defaults to content_revision

          -
          + @@ -1033,19 +1033,19 @@
          - Parameters: + Parameters:
          content::prepare_content_file
          - -
          form_name + form_name * + The name of the form object in which content was submitted.
          -
          Returns: +
          Returns:
          The path of the temporary file containing the content, or an empty string if the form does not include a content element or the value of the element is null. @@ -1055,7 +1055,7 @@

          -
          + @@ -1066,34 +1066,34 @@
          - Parameters: + Parameters:
          content::set_attribute_values
          - - - - - - - - @@ -1105,7 +1105,7 @@
          form_name + form_name * + The name of the ATS form object containing the attribute elements.
          content_type + content_type * + The type of item being revised in the form.
          revision_id + revision_id * + The revision ID from where to get the default values
          attributes + attributes * + The list of attributes whose values should be set.

          -
          + @@ -1116,20 +1116,20 @@
          - Parameters: + Parameters:
          content::set_content_value
          - - - - @@ -1141,7 +1141,7 @@
          form_name + form_name * + The name of the ATS form object containing the content element.
          revision_id + revision_id * + The revision ID of the content to revise

          -
          + @@ -1152,13 +1152,13 @@
          - Parameters: + Parameters:
          content::string_to_file
          - - @@ -1170,7 +1170,7 @@
          s + s * + The string to write to the file.

          -
          + @@ -1181,20 +1181,20 @@
          - Parameters: + Parameters:
          content::update_content_from_file
          - - - - @@ -1206,7 +1206,7 @@
          revision_id + revision_id * + The object ID of the revision to update.
          tmpfile + tmpfile * + The name of a temporary file containing the content. The file is deleted following the update.

          -
          + @@ -1217,34 +1217,34 @@
          - Parameters: + Parameters:
          content::upload_content
          - - - - - - - - @@ -1258,7 +1258,7 @@

          -

          +

          * indicates required

          Index: openacs-4/packages/acs-templating/www/doc/TclDocs/content_add.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/content_add.html,v diff -u -N -r1.1.1.1 -r1.1.1.1.30.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/content_add.html 13 Mar 2001 22:59:27 -0000 1.1.1.1 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/content_add.html 22 Jun 2016 07:48:44 -0000 1.1.1.1.30.1 @@ -23,15 +23,15 @@

          Method Detail

          -

          +

          * indicates required

          -Public Methods:
          -
          db + db * + A db handle
          revision_id + revision_id * + The revision to which the content belongs
          tmpfile + tmpfile * + The server-side name of the file containing the body of the revision to upload into the content BLOB column of cr_revisions.
          filename + filename * + The client-side name of the file containing the body of the revision to upload into the content BLOB column of cr_revisions
          +Public Methods:
          +
          content_add::content_method_html -
            by Michael Pih +
            by Michael Pih
          @@ -40,27 +40,27 @@
          - Parameters: + Parameters: - - - - - - @@ -78,7 +78,7 @@ -

          +

          * indicates required

          Index: openacs-4/packages/acs-templating/www/doc/TclDocs/content_method.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/content_method.html,v diff -u -N -r1.1.1.1 -r1.1.1.1.30.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/content_method.html 13 Mar 2001 22:59:27 -0000 1.1.1.1 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/content_method.html 22 Jun 2016 07:48:44 -0000 1.1.1.1.30.1 @@ -25,15 +25,15 @@

          Method Detail

          -

          +

          * indicates required

          -Public Methods:
          -
          db + db * + A database handle
          content_type + content_type * + The content type of the item
          item_id + item_id * + The item id
          +Public Methods:
          +
          content_method::flush_content_methods_cache -
            by Michael Pih +
            by Michael Pih
          @@ -42,13 +42,13 @@
          - Parameters: + Parameters: - - @@ -60,9 +60,9 @@
          content_type + content_type * + The content type, default null

          -
          +
          content_method::get_content_methods -
            by Michael Pih +
            by Michael Pih
          @@ -71,33 +71,33 @@
          - Parameters: + Parameters: - -
          content_type + content_type * + The content type
          -
          Returns: +
          Returns:
          A list of content methods or a list of label-value pairs of content methods if the " -get_labels" option is specified -
          Options: +
          Options: - - +
          get_labels +
          get_labels Instead of a list of content methods, return a list of label-value pairs of associated content methods.
          -
          See Also: +
          See Also:
          content_method::get_content_method_options, content_method::text_entry_filter_sql -
          @@ -111,10 +111,10 @@

          -Private Methods:
          -
          +Private Methods:
          +
          content_method::get_content_method_options -
            by Michael Pih +
            by Michael Pih
          @@ -123,23 +123,23 @@
          - Parameters: + Parameters: - -
          content_type + content_type * + The content type
          -
          Returns: +
          Returns:
          A list of label, value pairs of content methods -
          See Also: +
          See Also:
          content_method::get_content_methods, content_method::text_entry_filter_sql -
          @@ -148,9 +148,9 @@

          -
          +
          content_method::text_entry_filter_sql -
            by Michael Pih +
            by Michael Pih
          @@ -159,19 +159,19 @@
          - Parameters: + Parameters: - -
          content_type + content_type * +
          -
          Returns: +
          Returns:
          SQL stub that possibly filters out the text_entry content method @@ -183,7 +183,7 @@

          -

          +

          * indicates required

          Index: openacs-4/packages/acs-templating/www/doc/TclDocs/doc.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/doc.html,v diff -u -N -r1.2 -r1.2.30.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/doc.html 19 Jan 2002 23:45:46 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/doc.html 22 Jun 2016 07:48:44 -0000 1.2.30.1 @@ -23,7 +23,7 @@

          Method Detail

          -

          +

          * indicates required

          @@ -32,10 +32,10 @@

          -Private Methods:
          -
          +Private Methods:
          +
          -
            by simon +
            by simon
          @@ -44,13 +44,13 @@
          - Parameters: + Parameters: - - @@ -62,7 +62,7 @@
          text_lines + text_lines * + namespace text body

          -
          + @@ -79,7 +79,7 @@

          -
          + @@ -90,13 +90,13 @@
          - Parameters: + Parameters:
          - - @@ -108,7 +108,7 @@
          comment_text + comment_text * + this should include the source text

          -
          + @@ -119,20 +119,20 @@
          - Parameters: + Parameters:
          - - - - @@ -144,7 +144,7 @@
          comment_text + comment_text * + body of comment text to be parsed through
          source_text + source_text * + source text of the procedure

          -
          + @@ -155,11 +155,11 @@
          -
          Returns: +
          Returns:
          a long lists of lists of lists, each list element contains a three-element list of the format { {info} {public procedures listing } {private procedures listing} } -
          See Also: +
          See Also:
          namespace - util
          proc - doc::parse_file
          template::util::comment_text_normalize
          @@ -171,7 +171,7 @@

          -

          +

          * indicates required

          Index: openacs-4/packages/acs-templating/www/doc/TclDocs/doc__util.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/doc__util.html,v diff -u -N -r1.2 -r1.2.30.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/doc__util.html 19 Jan 2002 23:45:46 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/doc__util.html 22 Jun 2016 07:48:44 -0000 1.2.30.1 @@ -23,7 +23,7 @@

          Method Detail

          -

          +

          * indicates required

          @@ -32,8 +32,8 @@

          -Private Methods:
          -

          +Private Methods:
          +
          + @@ -73,26 +73,26 @@
          - Parameters: + Parameters:
          - - - -
          text + text * + name of string variable (not the string value itself)
          marker + marker * + the string indicating text division
          -
          See Also: +
          See Also:
          proc - doc::util::find_marker_indices
          @@ -101,7 +101,7 @@

          -
          + @@ -118,7 +118,7 @@

          -
          + @@ -129,30 +129,30 @@
          - Parameters: + Parameters:
          - - - -
          text + text * + body of text to be searched through
          marker + marker * + the text-divider mark
          -
          Returns: +
          Returns:
          list of indices of the position immediately preceding each occurrence of the text marker; if there are no occurrences of the text marker, returns a zero-element list -
          See Also: +
          See Also:
          namespace - doc
          proc - doc::parse_file
          doc::parse_namespace
          doc::util::text_divider
          @@ -162,7 +162,7 @@

          -
          + @@ -179,7 +179,7 @@

          -
          + @@ -190,20 +190,20 @@
          - Parameters: + Parameters:
          - - - - @@ -215,7 +215,7 @@
          element1 + element1 * + the first of the two list elements to be compared
          element2 + element2 * + the second of the two elements to be compared

          -
          + @@ -232,7 +232,7 @@

          -
          + @@ -251,7 +251,7 @@

          -

          +

          * indicates required

          Index: openacs-4/packages/acs-templating/www/doc/TclDocs/form.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/form.html,v diff -u -N -r1.2 -r1.2.30.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/form.html 19 Jan 2002 23:45:46 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/form.html 22 Jun 2016 07:48:44 -0000 1.2.30.1 @@ -43,13 +43,13 @@

          Method Detail

          -

          +

          * indicates required

          -Public Methods:
          -
          +Public Methods:
          + @@ -60,20 +60,20 @@
          - Parameters: + Parameters:
          - - - - @@ -85,7 +85,7 @@
          id + id * + The form identifier
          array_ref + array_ref * + The name of a local array variable whose keys correspond to element identifiers in the form

          -
          + @@ -96,19 +96,19 @@
          - Parameters: + Parameters:
          - -
          id + id * + The ID of an ATS form object.
          -
          Returns: +
          Returns:
          1 if a form with the specified ID exists. 0 if it does not. @@ -118,7 +118,7 @@

          -
          + @@ -129,7 +129,7 @@
          -
          Returns: +
          Returns:
          A string containing hidden input tags for inclusion in a form. @@ -139,7 +139,7 @@

          -
          + @@ -150,33 +150,33 @@
          - Parameters: + Parameters:
          - -
          id + id * + A keyword identifier for the form, such as { add_user} or { edit_item} . The ID must be unique in the context of a single page.
          -
          Options: +
          Options: - - + - - + - - + @@ -188,7 +188,7 @@
          method +
          method The standard METHOD attribute to specify in the HTML FORM tag at the beginning of the rendered form. Defaults to POST.
          html +
          html A list of additional name-value attribute pairs to include in the HTML FORM tag at the beginning of the rendered form. Common attributes include JavaScript event handlers and multipart form encoding. For example, { -html { enctype multipart/form-data onSubmit validate() } }
          elements +
          elements A block of element specifications.

          -
          + @@ -199,27 +199,27 @@
          - Parameters: + Parameters:
          - - - - - - @@ -231,7 +231,7 @@
          id + id * + The form identifier
          args + args * + A list of element identifiers. Each identifier may be a regexp. For example, form get_combined_values { foo.*} will combine the values of all elements starting with { foo}
          return + return * + The combined list of values

          -
          + @@ -242,13 +242,13 @@
          - Parameters: + Parameters:
          - - @@ -260,7 +260,7 @@
          id + id * + The form identifier

          -
          + @@ -271,19 +271,19 @@
          - Parameters: + Parameters:
          - -
          id + id * + The form identifier
          -
          Returns: +
          Returns:
          1 if true or 0 if false @@ -293,7 +293,7 @@

          -
          + @@ -304,19 +304,19 @@
          - Parameters: + Parameters:
          - -
          id + id * + The form identifier
          -
          Returns: +
          Returns:
          1 if true or 0 if false @@ -326,7 +326,7 @@

          -
          + @@ -337,19 +337,19 @@
          - Parameters: + Parameters:
          - -
          id + id * + The form identifier
          -
          Returns: +
          Returns:
          1 if true or 0 if false @@ -359,7 +359,7 @@

          -
          + @@ -370,20 +370,20 @@
          - Parameters: + Parameters:
          - - - - @@ -395,7 +395,7 @@
          id + id * + The form identifier
          args + args * + A list of element identifiers. If the list is empty, retreive all form elements

          -
          + @@ -406,20 +406,20 @@
          - Parameters: + Parameters:
          - - - - @@ -436,8 +436,8 @@

          -Private Methods:
          -

          id + id * + The form identifier.
          section + section * + The name of the current section.
          +Private Methods:
          + @@ -448,26 +448,26 @@
          - Parameters: + Parameters:
          - - - -
          id + id * + The form identifier
          style + style * + The style template to use when generating the form. Form style templates must be placed in the forms subdirectory of the ATS resources directory.
          -
          Returns: +
          Returns:
          A string containing a template for the body of the form. @@ -477,7 +477,7 @@

          -
          + @@ -494,7 +494,7 @@

          -
          + @@ -505,13 +505,13 @@
          - Parameters: + Parameters:
          - - @@ -523,7 +523,7 @@
          id + id * + The form identifier

          -
          + @@ -534,26 +534,26 @@
          - Parameters: + Parameters:
          - - - -
          id + id * + The form identifier
          tag_attributes + tag_attributes * + A name-value list of special attributes to add to the FORM tag, such as JavaScript event handlers.
          -
          Returns: +
          Returns:
          A string containing the rendered tags. @@ -563,7 +563,7 @@

          -
          + @@ -574,26 +574,26 @@
          - Parameters: + Parameters:
          - - - -
          id + id * + The form identifier
          style + style * + The style template to use when generating the form. Form style templates must be placed in the forms subdirectory of the ATS resources directory.
          -
          Returns: +
          Returns:
          A string containing the HTML for the body of the form. @@ -605,7 +605,7 @@

          -

          +

          * indicates required

          Index: openacs-4/packages/acs-templating/www/doc/TclDocs/item.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/item.adp,v diff -u -N -r1.2.2.2 -r1.2.2.3 --- openacs-4/packages/acs-templating/www/doc/TclDocs/item.adp 9 Jun 2016 13:03:12 -0000 1.2.2.2 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/item.adp 22 Jun 2016 07:48:44 -0000 1.2.2.3 @@ -205,12 +205,12 @@ will be one of the following:
          • -production - The item is still in production. The +production - The item is still in production. The workflow (if any) is not finished, and the item has no live revision.
          • -ready - The item is ready for publishing
          • -live - The item has been published
          • -expired - The item has been published in the past, but +ready - The item is ready for publishing
          • +live - The item has been published
          • +expired - The item has been published in the past, but its publication has expired
          Index: openacs-4/packages/acs-templating/www/doc/TclDocs/item.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/item.html,v diff -u -N -r1.2 -r1.2.2.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/item.html 27 Oct 2014 16:40:17 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/item.html 22 Jun 2016 07:48:44 -0000 1.2.2.1 @@ -62,13 +62,13 @@

          Method Detail

          -

          +

          * indicates required

          -Public Methods:
          -
          +Public Methods:
          + @@ -79,19 +79,19 @@
          - Parameters: + Parameters:
          item::content_is_null
          - -
          revision_id + revision_id * + The revision id
          -
          Returns: +
          Returns:
          1 if the content is null, 0 otherwise @@ -101,7 +101,7 @@

          -
          + @@ -112,27 +112,27 @@
          - Parameters: + Parameters:
          item::content_methods_by_type
          - -
          content_type + content_type * + The content type
          -
          Returns: +
          Returns:
          A Tcl list of all possible content methods -
          Options: +
          Options: - - + @@ -144,7 +144,7 @@
          get_labels +
          get_labels Return not just a list of types, but a list of name-value pairs, as in the -options ATS switch for form widgets

          -
          + @@ -155,23 +155,23 @@
          - Parameters: + Parameters:
          item::get_best_revision
          - -
          item_id + item_id * + The item id
          -
          Returns: +
          Returns:
          The best revision id for the item, or an empty string if no revisions exist -
          See Also: +
          See Also:
          proc - item::get_item_from_revision
          item::get_live_revision
          @@ -180,7 +180,7 @@

          -
          + @@ -191,19 +191,19 @@
          - Parameters: + Parameters:
          item::get_content_type
          - -
          item_id + item_id * + The item id
          -
          Returns: +
          Returns:
          The content type of the item, or an empty string if no such item exists @@ -213,7 +213,7 @@

          -
          + @@ -224,40 +224,40 @@
          - Parameters: + Parameters:
          item::get_extended_url
          - -
          item_id + item_id * + The item id
          -
          Returns: +
          Returns:
          The relative URL of the item with the appropriate file extension or an empty string on failure -
          Options: +
          Options: - - + - - +
          template_extension +
          template_extension Signifies that the file extension should be retrieved using the mime_type of the template assigned to the item, not from the item itself. The live revision of the template is used. If there is no template which could be used to render the item, or if the template has no live revision, the extension defaults to { .html}
          revision_id +
          revision_id - default the live revision; + default the live revision; Specifies the revision_id which will be used to retrieve the item's mime_type. This option is ignored if the -template_extension option is specified.
          -
          See Also: +
          See Also:
          proc - item::get_mime_info
          item::get_template_id
          item::get_url
          @@ -266,7 +266,7 @@

          -
          + @@ -277,30 +277,30 @@
          - Parameters: + Parameters:
          item::get_id
          - - -
          url + url * + The URL
          root_folder + root_folder - default The Sitemap; + default The Sitemap; The ID of the root folder to use for resolving the URL
          -
          Returns: +
          Returns:
          The item ID of the item at that URL, or the empty string on failure -
          See Also: +
          See Also:
          proc - item::get_url
          @@ -309,7 +309,7 @@

          -
          + @@ -320,23 +320,23 @@
          - Parameters: + Parameters:
          item::get_item_from_revision
          - -
          revision_id + revision_id * + The revision id
          -
          Returns: +
          Returns:
          The item_id of the item to which this revision belongs -
          See Also: +
          See Also:
          proc - item::get_best_revision
          item::get_live_revision
          @@ -345,7 +345,7 @@

          -
          + @@ -356,23 +356,23 @@
          - Parameters: + Parameters:
          item::get_live_revision
          - -
          item_id + item_id * + The item id
          -
          Returns: +
          Returns:
          The live revision id for the item, or an empty string if no live revision exists -
          See Also: +
          See Also:
          proc - item::get_best_revision
          item::get_item_from_revision
          @@ -381,7 +381,7 @@

          -
          + @@ -392,26 +392,26 @@
          - Parameters: + Parameters:
          item::get_mime_info
          - - -
          revision_id + revision_id * + The revision id
          datasource_ref + datasource_ref - default mime_info; + default mime_info; The name of the datasource to be created. The datasource will have two columns, mime_type and file_extension. return 1 (one) if the revision exists, 0 (zero) otherwise.
          -
          See Also: +
          See Also:
          proc - item::get_extended_url
          @@ -420,34 +420,34 @@

          -
          +
          item::get_publish_status
          -Get the publish status of the item. The publish status will be one of the following:
          • production - The item is still in production. The workflow (if any) is not finished, and the item has no live revision.
          • ready - The item is ready for publishing
          • live - The item has been published
          • expired - The item has been published in the past, but its publication has expired
          +Get the publish status of the item. The publish status will be one of the following:
          • production - The item is still in production. The workflow (if any) is not finished, and the item has no live revision.
          • ready - The item is ready for publishing
          • live - The item has been published
          • expired - The item has been published in the past, but its publication has expired
          - Parameters: + Parameters: - -
          item_id + item_id * + The item id
          -
          Returns: +
          Returns:
          The publish status of the item, or the empty string on failure -
          See Also: +
          See Also:
          proc - item::is_publishable
          @@ -456,7 +456,7 @@

          -
          + @@ -467,35 +467,35 @@
          - Parameters: + Parameters:
          item::get_revision_content
          - -
          revision_id + revision_id * + The revision whose attributes are to be retrieved
          -
          Returns: +
          Returns:
          1 on success (and create a content array in the calling frame), 0 on failure -
          Options: +
          Options: - - +
          item_id +
          item_id - default auto-generated; + default auto-generated; The item_id of the corresponding item.
          -
          See Also: +
          See Also:
          proc - item::get_content_type
          item::get_mime_info
          @@ -504,7 +504,7 @@

          -
          + @@ -515,30 +515,30 @@
          - Parameters: + Parameters:
          item::get_template_id
          - - -
          item_id + item_id * + The item id
          context + context - default 'public'; + default 'public'; The context in which the template will be used.
          -
          Returns: +
          Returns:
          The template_id of the template which can be used to render the item, or an empty string on failure -
          See Also: +
          See Also:
          proc - item::get_template_url
          @@ -547,7 +547,7 @@

          -
          + @@ -558,30 +558,30 @@
          - Parameters: + Parameters:
          item::get_template_url
          - - -
          item_id + item_id * + The item id
          context + context - default 'public'; + default 'public'; The context in which the template will be used.
          -
          Returns: +
          Returns:
          The template_id of the template which can be used to render the item, or an empty string on failure -
          See Also: +
          See Also:
          proc - item::get_template_id
          @@ -590,7 +590,7 @@

          -
          + @@ -601,23 +601,23 @@
          - Parameters: + Parameters:
          item::get_title
          - -
          item_id + item_id * + The item id
          -
          Returns: +
          Returns:
          The title of the item -
          See Also: +
          See Also:
          proc - item::get_best_revision
          @@ -626,7 +626,7 @@

          -
          + @@ -637,23 +637,23 @@
          - Parameters: + Parameters:
          item::get_url
          - -
          item_id + item_id * + The item id
          -
          Returns: +
          Returns:
          The relative URL to the item, or an empty string on failure -
          See Also: +
          See Also:
          proc - item::get_extended_url
          @@ -662,7 +662,7 @@

          -
          + @@ -673,19 +673,19 @@
          - Parameters: + Parameters:
          item::is_publishable
          - -
          item_id + item_id * + The item id
          -
          Returns: +
          Returns:
          1 if the item is publishable, 0 otherwise @@ -701,7 +701,7 @@ -

          +

          * indicates required

          Index: openacs-4/packages/acs-templating/www/doc/TclDocs/namespace-list.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/namespace-list.html,v diff -u -N -r1.2.30.1 -r1.2.30.2 --- openacs-4/packages/acs-templating/www/doc/TclDocs/namespace-list.html 9 Jun 2016 13:03:12 -0000 1.2.30.1 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/namespace-list.html 22 Jun 2016 07:48:44 -0000 1.2.30.2 @@ -6,7 +6,7 @@

          All Namespaces

          -
          +   doc
          Index: openacs-4/packages/acs-templating/www/doc/TclDocs/namespaces.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/namespaces.html,v diff -u -N -r1.2.30.1 -r1.2.30.2 --- openacs-4/packages/acs-templating/www/doc/TclDocs/namespaces.html 9 Jun 2016 13:03:12 -0000 1.2.30.1 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/namespaces.html 22 Jun 2016 07:48:44 -0000 1.2.30.2 @@ -6,7 +6,7 @@

          -

          ATS and CMS Tcl Procedure Specifications

          +

          ATS and CMS Tcl Procedure Specifications

          Index: openacs-4/packages/acs-templating/www/doc/TclDocs/pagination.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/pagination.html,v diff -u -N -r1.1.1.1 -r1.1.1.1.30.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/pagination.html 13 Mar 2001 22:59:27 -0000 1.1.1.1 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/pagination.html 22 Jun 2016 07:48:44 -0000 1.1.1.1.30.1 @@ -27,15 +27,15 @@

          Method Detail

          -

          +

          * indicates required

          -Public Methods:
          -
          +Public Methods:
          +
          pagination::get_total_pages -
            by Michael Pih +
            by Michael Pih
          @@ -44,13 +44,13 @@
          - Parameters: + Parameters: - - @@ -62,9 +62,9 @@
          db + db * + A database handle

          -
          +
          pagination::page_number_links -
            by Michael Pih +
            by Michael Pih
          @@ -73,20 +73,20 @@
          - Parameters: + Parameters: - - - - @@ -98,9 +98,9 @@
          page + page * + The current page number
          total_pages + total_pages * + The total pages returned by the query

          -
          +
          pagination::paginate_query -
            by Michael Pih +
            by Michael Pih
          @@ -109,20 +109,20 @@
          - Parameters: + Parameters: - - - - @@ -139,8 +139,8 @@

          -Private Methods:
          -

          sql + sql * + The sql query to paginate
          page + page * + The current page number
          +Private Methods:
          + @@ -157,9 +157,9 @@
          pagination::get_rows_per_page

          -
          +
          pagination::ns_set_to_url_vars -
            by Michael Pih +
            by Michael Pih
          @@ -168,13 +168,13 @@
          - Parameters: + Parameters: - - @@ -188,7 +188,7 @@

          -

          +

          * indicates required

          Index: openacs-4/packages/acs-templating/www/doc/TclDocs/publish.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/publish.adp,v diff -u -N -r1.2.2.2 -r1.2.2.3 --- openacs-4/packages/acs-templating/www/doc/TclDocs/publish.adp 9 Jun 2016 13:03:12 -0000 1.2.2.2 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/publish.adp 22 Jun 2016 07:48:44 -0000 1.2.2.3 @@ -7,8 +7,8 @@   by Stanislav Freidin The procs in this namespace are useful for publishing items, including items inside other items, and writing items to the filesystem. -

          Specifically, the content, child and -relation tags are defined here.

          +

          Specifically, the content, child and +relation tags are defined here.

          Also see:

          namespace
          item
          @@ -45,17 +45,17 @@
          Return the name of a proc that should be used to render items with the given mime-type. The mime type handlers should all follow the naming convention -
          proc +
          proc publish::handle::mime_prefix::mime_suffix -
          +
          If the specific mime handler could not be found, -get_mime_handler looks for a generic procedure with the +get_mime_handler looks for a generic procedure with the name -
          proc +
          proc publish::handle::mime_prefix -
          +
          If the generic mime handler does not exist either, -get_mime_handler returns { }
          +get_mime_handler returns { }
          Parameters:
          set_id + set_id * + The set id
          @@ -140,11 +140,11 @@
          Returns:
          The HTML resulting from merging the item with its template, or -" " if no template exists or the -no_merge flag was +" " if no template exists or the -no_merge flag was specified
          Options:
          @@ -164,8 +164,8 @@
          embedSignifies that the content should be embedded -directly in the parent item. -embed is required for +directly in the parent item. -embed is required for this proc, since it makes no sense to handle the binary file in any other way.
          publish::item_include_tag
          Create an include tag to include an item, in the form -
          include src=/foo/bar/baz item_id=item_id -param=value param=value ...
          +
          include src=/foo/bar/baz item_id=item_id +param=value param=value ...
          Parameters: @@ -177,7 +177,7 @@ +include tag, in form {name value name value ...}
          extra_args* {} A list of extra parameters to be passed to the -include tag, in form {name value name value ...}
          Returns:
          The HTML for the include tag
          See Also:
          proc - item::item_url
          publish::html_args
          @@ -223,7 +223,7 @@
          publish::publish_revision
          Render a revision for an item and write it to the filesystem. The revision is always rendered with the --embed option turned on.
          +-embed option turned on.
          Parameters:
          @@ -295,7 +295,7 @@
          publish::unpublish_item
          Delete files which were created by -publish_revision +publish_revision
          Parameters: @@ -463,7 +463,7 @@ +{<include>} tag @@ -476,7 +476,7 @@
          embedSignifies that the content should be statically embedded directly in the HTML. If this option is not specified, the item may be dynamically referenced, f.ex. using the -{<include>} tag
          htmlExtra HTML parameters to be passed to the item handler, in format {name value name value ...}
          publish::html_args
          Concatenate a list of name-value pairs as returned by -set_to_pairs into a list of { name=value} +set_to_pairs into a list of { name=value} pairs
          Parameters: @@ -493,7 +493,7 @@
          publish::merge_with_template
          Merge the item with its template and return the resulting HTML. This proc is simlar to -content::init +content::init
          Parameters: @@ -528,15 +528,15 @@
          publish::process_tag
          -
          Process a child or relation tag. This +
          Process a child or relation tag. This is a helper proc for the tags, which acts as a wrapper for -render_subitem.
          +render_subitem.
          Parameters:
          relation_type* -Either child or relation +Either child or relation
          @@ -552,8 +552,8 @@
          publish::push_id
          Push an item id on top of stack. This proc is used to -store state between child, relation and -content tags.
          +store state between child, relation and +content tags.
          Parameters: @@ -584,7 +584,7 @@ +with lowest order_n has index 1, the second lowest +order_n has index 2, and so on.
          relation_type* -Either child or relation. +Either child or relation. Determines which tables are searched for subitems.
          @@ -594,15 +594,15 @@ index* The relative index of the subitem. The subitem -with lowest order_n has index 1, the second lowest -order_n has index 2, and so on.
          is_embed* If { t} , the child item may be embedded directly in the HTML. Otherwise, it may be dynamically included. The proc does not process this parameter directly, but passes it to -handle_item +handle_item
          @@ -612,8 +612,8 @@
          is_merge default t; If { t} , -merge_with_template may be used to render the subitem. -Otherwise, merge_with_template should not be used, in +merge_with_template may be used to render the subitem. +Otherwise, merge_with_template should not be used, in order to prevent infinite recursion.
          context @@ -703,13 +703,13 @@
          -
          Implements the child tag which renders a child +
          Implements the child tag which renders a child item. See the Developer Guide for more information.
          The child tag format is -
          {<child} tag=tag index=n embed -{args>}
          +
          {<child} tag=tag index=n embed +{args>}
          -Parameters: +Parameters:
          @@ -719,11 +719,11 @@
          params* The ns_set id for extra HTML parameters
          -
          Implements the content tag which renders the +
          Implements the content tag which renders the content of the current item. See the Developer Guide for more information.
          -The content tag format is simply {<content>.} The -embed and no_merge parameters are implicit to the +The content tag format is simply {<content>.} The +embed and no_merge parameters are implicit to the tag.
          Parameters:
          @@ -735,11 +735,11 @@
          -
          Implements the relation tag which renders a +
          Implements the relation tag which renders a related item. See the Developer Guide for more information.
          The relation tag format is -
          {<relation} tag=tag index=n embed -{args>}
          +
          {<relation} tag=tag index=n embed +{args>}
          Parameters:
          Index: openacs-4/packages/acs-templating/www/doc/TclDocs/publish.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/publish.html,v diff -u -N -r1.2 -r1.2.2.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/publish.html 27 Oct 2014 16:40:17 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/publish.html 22 Jun 2016 07:48:44 -0000 1.2.2.1 @@ -7,7 +7,7 @@

          Namespace publish

          -  by Stanislav Freidin The procs in this namespace are useful for publishing items, including items inside other items, and writing items to the filesystem.

          Specifically, the content, child and relation tags are defined here. +  by Stanislav Freidin The procs in this namespace are useful for publishing items, including items inside other items, and writing items to the filesystem.

          Specifically, the content, child and relation tags are defined here.

          @@ -62,13 +62,13 @@

          Method Detail

          -

          +

          * indicates required

          -Public Methods:
          -
          +Public Methods:
          + @@ -79,19 +79,19 @@
          - Parameters: + Parameters:
          publish::get_html_body
          - -
          html + html * + The html to be processed
          -
          Returns: +
          Returns:
          Everything between the <body> and the </body> tags if they exist; the unchanged HTML if they do not @@ -101,34 +101,34 @@

          -
          +
          publish::get_mime_handler
          -Return the name of a proc that should be used to render items with the given mime-type. The mime type handlers should all follow the naming convention
          proc publish::handle::mime_prefix::mime_suffix
          If the specific mime handler could not be found, get_mime_handler looks for a generic procedure with the name
          proc publish::handle::mime_prefix
          If the generic mime handler does not exist either, get_mime_handler returns { } +Return the name of a proc that should be used to render items with the given mime-type. The mime type handlers should all follow the naming convention
          proc publish::handle::mime_prefix::mime_suffix
          If the specific mime handler could not be found, get_mime_handler looks for a generic procedure with the name
          proc publish::handle::mime_prefix
          If the generic mime handler does not exist either, get_mime_handler returns { }
          - Parameters: + Parameters: - -
          mime_type + mime_type * + The full mime type, such as { text/html} or { image/jpg}
          -
          Returns: +
          Returns:
          The name of the proc which should be used to handle the mime-type, or an empty string on failure. -
          See Also: +
          See Also:
          proc - publish::handle_item
          @@ -137,7 +137,7 @@

          -
          + @@ -148,11 +148,11 @@
          -
          Returns: +
          Returns:
          The page root -
          See Also: +
          See Also:
          proc - publish::get_publish_roots
          publish::get_template_root
          @@ -161,7 +161,7 @@
          publish::get_page_root

          -
          + @@ -172,11 +172,11 @@
          -
          Returns: +
          Returns:
          A list of all the publish roots -
          See Also: +
          See Also:
          proc - publish::get_page_root
          publish::get_template_root
          @@ -185,7 +185,7 @@
          publish::get_publish_roots

          -
          + @@ -196,11 +196,11 @@
          -
          Returns: +
          Returns:
          The template root -
          See Also: +
          See Also:
          proc - content::get_template_root,
          @@ -209,7 +209,7 @@
          publish::get_template_root

          -
          + @@ -220,66 +220,66 @@
          - Parameters: + Parameters:
          publish::handle_binary_file
          - - - - + required The name of the variable in the calling frame that will recieve the revision_id whose content blob was written to the filesystem. - - - -
          item_id + item_id * + The id of the item to handle
          revision_id_ref + revision_id_ref * + - required The name of the variable in the calling frame that will recieve the revision_id whose content blob was written to the filesystem.
          url_ref + url_ref * + The name of the variable in the calling frame that will recieve the relative URL of the file in the file system which contains the content blob
          error_ref + error_ref * + The name of the variable in the calling frame that will recieve an error message. If no error has ocurred, this variable will be set to the empty string { }
          -
          Returns: +
          Returns:
          - The HTML resulting from merging the item with its template, or " " if no template exists or the -no_merge flag was specified + The HTML resulting from merging the item with its template, or " " if no template exists or the -no_merge flag was specified -
          Options: +
          Options: - - + + Signifies that the content should be embedded directly in the parent item. -embed is required for this proc, since it makes no sense to handle the binary file in any other way. - - + - - +
          embed +
          embed - Signifies that the content should be embedded directly in the parent item. -embed is required for this proc, since it makes no sense to handle the binary file in any other way.
          revision_id +
          revision_id - default The live revision for the item; + default The live revision for the item; The revision whose content is to be used
          no_merge +
          no_merge If present, do NOT merge with the template, in order to prevent infinite recursion in the {<content>} tag. In this case, the proc will return the empty string { }
          -
          See Also: +
          See Also:
          proc - publish::handle::image
          @@ -288,41 +288,41 @@

          -
          +
          publish::item_include_tag
          -Create an include tag to include an item, in the form
          include src=/foo/bar/baz item_id=item_id param=value param=value ...
          +Create an include tag to include an item, in the form
          include src=/foo/bar/baz item_id=item_id param=value param=value ...
          - Parameters: + Parameters: - - - - + {} A list of extra parameters to be passed to the include tag, in form {name value name value ...}
          item_id + item_id * + The item id
          extra_args + extra_args * + - {} A list of extra parameters to be passed to the include tag, in form {name value name value ...}
          -
          Returns: +
          Returns:
          The HTML for the include tag -
          See Also: +
          See Also:
          proc - item::item_url
          publish::html_args
          @@ -331,7 +331,7 @@

          -
          + @@ -342,13 +342,13 @@
          - Parameters: + Parameters:
          publish::mkdirs
          - - @@ -360,7 +360,7 @@
          path + path * + The path to the file that is about to be saved

          -
          + @@ -371,26 +371,26 @@
          - Parameters: + Parameters:
          publish::proc_exists
          - - - -
          namespace_name + namespace_name * + The fully qualified namespace name, such as { template::util}
          proc_name + proc_name * + The proc name, such as { is_nil}
          -
          Returns: +
          Returns:
          1 if the proc exists in the given namespace, 0 otherwise @@ -400,42 +400,42 @@

          -
          +
          publish::publish_revision
          -Render a revision for an item and write it to the filesystem. The revision is always rendered with the -embed option turned on. +Render a revision for an item and write it to the filesystem. The revision is always rendered with the -embed option turned on.
          - Parameters: + Parameters: - -
          revision_id + revision_id * + The revision id
          -
          Options: +
          Options: - - +
          root_path +
          root_path - default All paths in the PublishPaths parameter; + default All paths in the PublishPaths parameter; Write the content to this path only.
          -
          See Also: +
          See Also:
          proc - item::get_extended_url
          publish::get_publish_paths
          publish::handle_item
          @@ -444,7 +444,7 @@

          -
          + @@ -455,19 +455,19 @@
          - Parameters: + Parameters:
          publish::schedule_status_sweep
          -
          interval + interval - default 3600; + default 3600; The interval, in seconds, between the sweeps of all items in the content repository. Lower values increase the precision of the publishing/expiration dates but decrease performance. If this parameter is not specified, the value of the StatusSweepInterval parameter in the server's INI file is used (if it exists).
          -
          See Also: +
          See Also:
          proc - publish::set_publish_status
          publish::track_publish_status
          publish::unschedule_status_sweep
          @@ -476,7 +476,7 @@

          -
          + @@ -487,40 +487,40 @@
          - Parameters: + Parameters:
          publish::set_publish_status
          - - - - - - -
          db + db * + The database handle
          item_id + item_id * + The item id
          new_status + new_status * + The new publish status. Must be { production} , { expired} , { ready} or { live}
          revision_id + revision_id - default The live revision; + default The live revision; The revision id to be used when publishing the item to the filesystem.
          -
          See Also: +
          See Also:
          proc - publish::publish_revision
          publish::unpublish_item
          @@ -529,49 +529,49 @@

          -
          +
          publish::unpublish_item
          -Delete files which were created by publish_revision +Delete files which were created by publish_revision
          - Parameters: + Parameters: - -
          item_id + item_id * + The item id
          -
          Options: +
          Options: - - + - - +
          revision_id +
          revision_id - default The live revision; + default The live revision; The revision which is to be used for determining the item filename
          root_path +
          root_path - default All paths in the PublishPaths parameter; + default All paths in the PublishPaths parameter; Write the content to this path only.
          -
          See Also: +
          See Also:
          proc - publish::publish_revision
          @@ -580,7 +580,7 @@

          -
          + @@ -591,7 +591,7 @@
          -
          See Also: +
          See Also:
          proc - publish::schedule_status_sweep
          @@ -600,7 +600,7 @@
          publish::unschedule_status_sweep

          -
          + @@ -611,47 +611,47 @@
          - Parameters: + Parameters:
          publish::write_content
          - -
          revision_id + revision_id * + The id of the revision to write
          -
          Returns: +
          Returns:
          The relative URL of the file that was written, or an empty string on failure -
          Options: +
          Options: - - + - - + - - +
          item_id +
          item_id - default The item_id of the revision; + default The item_id of the revision; Specifies the item to which this revision belongs (mereley for optimization purposes)
          text +
          text If specified, indicates that the content of the revision is readable text (clob), not a binary file
          root_path +
          root_path - default All paths in the PublishPaths parameter; + default All paths in the PublishPaths parameter; Write the content to this path only.
          -
          See Also: +
          See Also:
          proc - content::get_content_value
          publish::get_publish_roots
          @@ -665,8 +665,8 @@

          -Private Methods:
          -
          +Private Methods:
          + @@ -677,19 +677,19 @@
          - Parameters: + Parameters:
          publish::delete_multiple_files
          - -
          url + url * + Relative URL of the file to write
          -
          See Also: +
          See Also:
          proc - publish::get_publish_roots
          publish::write_multiple_blobs
          publish::write_multiple_files
          @@ -698,7 +698,7 @@

          -
          + @@ -709,33 +709,33 @@
          - Parameters: + Parameters:
          publish::foreach_publish_path
          - - - - -
          url + url * + Relative URL to append to the roots
          code + code * + Execute this code
          root_path + root_path - default The empty string; + default The empty string; Use this root path instead of the paths specified in the INI file
          -
          See Also: +
          See Also:
          proc - publish::get_publish_roots
          @@ -744,7 +744,7 @@

          -
          + @@ -755,11 +755,11 @@
          -
          Returns: +
          Returns:
          the main item id -
          See Also: +
          See Also:
          proc - publish::get_main_revision_id
          publish::pop_id
          publish::push_id
          @@ -768,7 +768,7 @@
          publish::get_main_item_id

          -
          + @@ -779,11 +779,11 @@
          -
          Returns: +
          Returns:
          the main item id -
          See Also: +
          See Also:
          proc - publish::get_main_item_id
          publish::pop_id
          publish::push_id
          @@ -792,7 +792,7 @@
          publish::get_main_revision_id

          -
          + @@ -803,62 +803,62 @@
          - Parameters: + Parameters:
          publish::handle_item
          - - - -
          item_id + item_id * + The id of the item to be rendered
          context + context * + The context for the item (default public)
          -
          Returns: +
          Returns:
          The rendered HTML for the item, or an empty string on failure -
          Options: +
          Options: - - + - - + - - + - - + + Signifies that the content should be statically embedded directly in the HTML. If this option is not specified, the item may be dynamically referenced, f.ex. using the {<include>} tag - - +
          revision_id +
          revision_id - default The live revision; + default The live revision; The revision which is to be used when rendering the item
          no_merge +
          no_merge Indicates that the item should NOT be merged with its template. This option is used to avoid infinite recursion.
          refresh +
          refresh Re-render the item even if it exists in the cache. Use with caution - circular dependencies may cause infinite recursion if this option is specified
          embed +
          embed - Signifies that the content should be statically embedded directly in the HTML. If this option is not specified, the item may be dynamically referenced, f.ex. using the {<include>} tag
          html +
          html Extra HTML parameters to be passed to the item handler, in format {name value name value ...}
          -
          See Also: +
          See Also:
          proc - publish::handle::image
          publish::handle::text
          publish::handle_binary_file
          @@ -867,34 +867,34 @@

          -
          +
          publish::html_args
          -Concatenate a list of name-value pairs as returned by set_to_pairs into a list of { name=value} pairs +Concatenate a list of name-value pairs as returned by set_to_pairs into a list of { name=value} pairs
          - Parameters: + Parameters: - -
          argv + argv * + The list of name-value pairs
          -
          Returns: +
          Returns:
          An HTML string in format " name=value name=value ..." -
          See Also: +
          See Also:
          proc - publish::set_to_pairs
          @@ -903,51 +903,51 @@

          -
          +
          publish::merge_with_template
          -Merge the item with its template and return the resulting HTML. This proc is simlar to content::init +Merge the item with its template and return the resulting HTML. This proc is simlar to content::init
          - Parameters: + Parameters: - -
          item_id + item_id * + The item id
          -
          Returns: +
          Returns:
          The rendered HTML, or the empty string on failure -
          Options: +
          Options: - - + - - +
          revision_id +
          revision_id - default The live revision; + default The live revision; The revision which is to be used when rendering the item
          html +
          html Extra HTML parameters to be passed to the ADP parser, in format {name value name value ...}
          -
          See Also: +
          See Also:
          proc - publish::handle_item
          @@ -956,7 +956,7 @@

          -
          + @@ -967,11 +967,11 @@
          -
          Returns: +
          Returns:
          The popped item id, or the empty string if the string is already empty -
          See Also: +
          See Also:
          proc - publish::get_main_item_id
          publish::get_main_revision_id
          publish::push_id
          @@ -980,37 +980,37 @@
          publish::pop_id

          -
          +
          publish::process_tag
          -Process a child or relation tag. This is a helper proc for the tags, which acts as a wrapper for render_subitem. +Process a child or relation tag. This is a helper proc for the tags, which acts as a wrapper for render_subitem.
          - Parameters: + Parameters: - - + Either child or relation - -
          relation_type + relation_type * + - Either child or relation
          params + params * + The ns_set id for extra HTML parameters
          -
          See Also: +
          See Also:
          proc - publish::render_subitem
          @@ -1019,37 +1019,37 @@

          -
          +
          publish::push_id
          -Push an item id on top of stack. This proc is used to store state between child, relation and content tags. +Push an item id on top of stack. This proc is used to store state between child, relation and content tags.
          - Parameters: + Parameters: - - -
          item_id + item_id * + The id to be put on stack
          revision_id + revision_id - default { }; + default { }; The id of the revision to use. If missing, live revision will most likely be used
          -
          See Also: +
          See Also:
          proc - publish::get_main_item_id
          publish::get_main_revision_id
          publish::pop_id
          @@ -1058,7 +1058,7 @@

          -
          + @@ -1069,72 +1069,72 @@
          - Parameters: + Parameters:
          publish::render_subitem
          - - - - + Either child or relation. Determines which tables are searched for subitems. - - - - + The relative index of the subitem. The subitem with lowest order_n has index 1, the second lowest order_n has index 2, and so on. - - + If { t} , the child item may be embedded directly in the HTML. Otherwise, it may be dynamically included. The proc does not process this parameter directly, but passes it to handle_item - - - + If { t} , merge_with_template may be used to render the subitem. Otherwise, merge_with_template should not be used, in order to prevent infinite recursion. -
          main_item_id + main_item_id * + The id of the parent item
          relation_type + relation_type * + - Either child or relation. Determines which tables are searched for subitems.
          relation_tag + relation_tag * + The relation tag to look for
          index + index * + - The relative index of the subitem. The subitem with lowest order_n has index 1, the second lowest order_n has index 2, and so on.
          is_embed + is_embed * + - If { t} , the child item may be embedded directly in the HTML. Otherwise, it may be dynamically included. The proc does not process this parameter directly, but passes it to handle_item
          extra_args + extra_args * + Any additional HTML arguments to be used when rendering the item, in form {name value name value ...}
          is_merge + is_merge - default t; + default t; - If { t} , merge_with_template may be used to render the subitem. Otherwise, merge_with_template should not be used, in order to prevent infinite recursion.
          context + context - default public; + default public;
          -
          Returns: +
          Returns:
          The rendered HTML for the child item -
          See Also: +
          See Also:
          proc - publish::handle_item
          publish::merge_with_template
          @@ -1143,7 +1143,7 @@

          -
          + @@ -1154,26 +1154,26 @@
          - Parameters: + Parameters:
          publish::set_to_pairs
          - - - -
          params + params * + The ns_set id
          exclusion_list + exclusion_list * + {} A list of keys to be ignored
          -
          Returns: +
          Returns:
          A list of name-value pairs representing the data in the ns_set @@ -1183,7 +1183,7 @@

          -
          + @@ -1194,7 +1194,7 @@
          -
          See Also: +
          See Also:
          proc - publish::schedule_status_sweep
          @@ -1203,7 +1203,7 @@
          publish::track_publish_status

          -
          + @@ -1214,33 +1214,33 @@
          - Parameters: + Parameters:
          publish::write_multiple_blobs
          - - - - - -
          db + db * + A valid database handle
          url + url * + Relative URL of the file to write
          revision_id + revision_id * + Write the blob for this revision
          -
          See Also: +
          See Also:
          proc - publish::get_publish_roots
          publish::write_multiple_files
          @@ -1249,7 +1249,7 @@

          -
          + @@ -1260,26 +1260,26 @@
          - Parameters: + Parameters:
          publish::write_multiple_files
          - - - -
          url + url * + Relative URL of the file to write
          text + text * + A string of text to be written to the URL
          -
          See Also: +
          See Also:
          proc - publish::get_publish_roots
          publish::write_multiple_blobs
          template::util::write_file
          @@ -1288,24 +1288,24 @@

          -
          +
          -Implements the child tag which renders a child item. See the Developer Guide for more information.
          The child tag format is
          {<child} tag=tag index=n embed {args>}
          +Implements the child tag which renders a child item. See the Developer Guide for more information.
          The child tag format is
          {<child} tag=tag index=n embed {args>}
          - Parameters: + Parameters: - - @@ -1317,24 +1317,24 @@
          params + params * + The ns_set id for extra HTML parameters

          -
          +
          -Implements the content tag which renders the content of the current item. See the Developer Guide for more information.
          The content tag format is simply {<content>.} The embed and no_merge parameters are implicit to the tag. +Implements the content tag which renders the content of the current item. See the Developer Guide for more information.
          The content tag format is simply {<content>.} The embed and no_merge parameters are implicit to the tag.
          - Parameters: + Parameters: - - @@ -1346,24 +1346,24 @@
          params + params * + The ns_set id for extra HTML parameters

          -
          +
          -Implements the relation tag which renders a related item. See the Developer Guide for more information.
          The relation tag format is
          {<relation} tag=tag index=n embed {args>}
          +Implements the relation tag which renders a related item. See the Developer Guide for more information.
          The relation tag format is
          {<relation} tag=tag index=n embed {args>}
          - Parameters: + Parameters: - - @@ -1377,7 +1377,7 @@

          -

          +

          * indicates required

          Index: openacs-4/packages/acs-templating/www/doc/TclDocs/request.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/request.adp,v diff -u -N -r1.2.2.2 -r1.2.2.3 --- openacs-4/packages/acs-templating/www/doc/TclDocs/request.adp 9 Jun 2016 13:03:12 -0000 1.2.2.2 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/request.adp 22 Jun 2016 07:48:44 -0000 1.2.2.3 @@ -76,7 +76,7 @@ +template::data::validate namespace.
          params + params * + The ns_set id for extra HTML parameters
          datatypeThe name of a datatype for the element values. Valid datatypes must have a validation procedure defined in the -template::data::validate namespace.
          optionalA flag indicating that no value is required for this element. If a default value is specified, the default is used Index: openacs-4/packages/acs-templating/www/doc/TclDocs/request.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/request.html,v diff -u -N -r1.2 -r1.2.30.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/request.html 19 Jan 2002 23:45:46 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/request.html 22 Jun 2016 07:48:44 -0000 1.2.30.1 @@ -40,13 +40,13 @@

          Method Detail

          -

          +

          * indicates required

          -Public Methods:
          -
          +Public Methods:
          + @@ -57,19 +57,19 @@
          - Parameters: + Parameters:
          - -
          url + url * + The URL of the template to use to display error messages. The special value { self} may be used to indicate that the template for the requested page itself will handle reporting error conditions.
          -
          Returns: +
          Returns:
          1 if no error conditions exist, 0 otherwise. @@ -79,7 +79,7 @@

          -
          + @@ -90,11 +90,11 @@
          -
          Options: +
          Options:
          - - + @@ -106,7 +106,7 @@
          params +
          params A block of parameter declarations, separated by newlines. Equivalent to calling set_param for each parameter, but requiring slightly less typing.

          -
          + @@ -117,49 +117,49 @@
          - Parameters: + Parameters:
          - -
          name + name * + The name of the parameter to declare.
          -
          Options: +
          Options: - - + - - + - - + + The name of a datatype for the element values. Valid datatypes must have a validation procedure defined in the template::data::validate namespace. - - + - - +
          name +
          name The name of parameter in the query (may be different from the reference name).
          multiple +
          multiple A flag indicating that multiple values may be specified for this parameter.
          datatype +
          datatype - The name of a datatype for the element values. Valid datatypes must have a validation procedure defined in the template::data::validate namespace.
          optional +
          optional A flag indicating that no value is required for this element. If a default value is specified, the default is used instead.
          validate +
          validate A list of custom validation blocks in the form { name { expression } { message } \ name { expression } { message } ...} where name is a unique identifier for the validation step, expression is a block to Tcl code that evaluates to 1 or 0, and message is to be displayed to the user when the validation step fails.
          -
          See Also: +
          See Also:
          element::create -
          @@ -168,7 +168,7 @@

          -
          + @@ -179,20 +179,20 @@
          - Parameters: + Parameters:
          - - - - @@ -204,7 +204,7 @@
          name + name * + A unique identifier for the error condition, which may be used for layout purposes.
          msg + msg * + The message text associated with the condition.

          -
          + @@ -215,19 +215,19 @@
          - Parameters: + Parameters:
          - -
          name + name * + The name of the parameter.
          -
          Returns: +
          Returns:
          The value of the specified parameter. @@ -243,7 +243,7 @@ -

          +

          * indicates required

          Index: openacs-4/packages/acs-templating/www/doc/TclDocs/util.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/util.html,v diff -u -N -r1.2 -r1.2.30.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/util.html 19 Jan 2002 23:45:46 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/util.html 22 Jun 2016 07:48:44 -0000 1.2.30.1 @@ -23,7 +23,7 @@

          Method Detail

          -

          +

          * indicates required

          @@ -32,8 +32,8 @@

          -Private Methods:
          -
          +Private Methods:
          + @@ -50,7 +50,7 @@

          -
          + @@ -61,7 +61,7 @@
          -
          Returns: +
          Returns:
          returns formatted string @@ -71,7 +71,7 @@

          -
          + @@ -82,19 +82,19 @@
          - Parameters: + Parameters:
          - -
          text + text * +
          -
          Returns: +
          Returns:
          text @@ -104,7 +104,7 @@

          -
          + @@ -115,19 +115,19 @@
          - Parameters: + Parameters:
          - -
          text + text * + req/none the body of text to be worked on
          -
          Returns: +
          Returns:
          same text but with a space behind each quote; double quotes that are already trailed by a space are unaffected @@ -137,7 +137,7 @@

          -
          + @@ -148,20 +148,20 @@
          - Parameters: + Parameters:
          - - - - @@ -173,7 +173,7 @@
          template + template * + the name of the template to be used in making the file
          file_name + file_name * + the name of the file to be created

          -
          + @@ -184,26 +184,26 @@
          - Parameters: + Parameters:
          - - - -
          list + list * + {let's see how this parses out} the alphabetized list
          entry + entry * + req the value to be inserted
          -
          Returns: +
          Returns:
          either the proper list index for an alphabetized insertion or -1 if the entry is already in the list @@ -213,7 +213,7 @@

          -
          + @@ -230,7 +230,7 @@

          -
          + @@ -247,7 +247,7 @@

          -
          + @@ -266,7 +266,7 @@

          -

          +

          * indicates required

          Index: openacs-4/packages/acs-templating/www/doc/TclDocs/widget.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/widget.html,v diff -u -N -r1.1.1.1 -r1.1.1.1.30.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/widget.html 13 Mar 2001 22:59:27 -0000 1.1.1.1 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/widget.html 22 Jun 2016 07:48:44 -0000 1.1.1.1.30.1 @@ -23,13 +23,13 @@

          Method Detail

          -

          +

          * indicates required

          -Public Methods:
          -
          +Public Methods:
          + @@ -40,55 +40,55 @@
          - Parameters: + Parameters:
          widget::param_element_create
          - - - - - - - - - - - - - - @@ -105,10 +105,10 @@

          -Private Methods:
          -

          form + form * + Name of the form in which to generate the form elements
          param + param * + Name of the form widget param for which to generate a form element
          order + order * + The order that the param form widget will appear in the form
          param_id + param_id * + The ID of the form widget param
          default + default * + The default value of the form widget param
          is_required + is_required * + Flag indicating whether the form widget param is optional or required
          param_source + param_source * + The default source of the value of the form widget param. One of literal, eval, query
          +Private Methods:
          +
          widget::create_options_param -
            by Michael Pih +
            by Michael Pih
          @@ -117,41 +117,41 @@
          - Parameters: + Parameters: - - - - - - - - - - @@ -163,9 +163,9 @@
          form + form * + The name of the form
          order + order * + The order of placement of the form widget within the form
          default + default * + The default value of the form widget param value
          is_required + is_required * + A flag indicating whether the form widget param value is mandatory
          param_source + param_source * + The default param source for the form widget param value (literal, query, eval)

          -
          +
          widget::create_param_source -
            by Michael Pih +
            by Michael Pih
          @@ -174,27 +174,27 @@
          - Parameters: + Parameters: - - - - - - @@ -206,9 +206,9 @@
          form + form * +
          order + order * + The order of placement of the form widget within the form
          param_source + param_source * + The default param source of the metadata widget (literal, query, eval)

          -
          +
          widget::create_param_type -
            by Michael Pih +
            by Michael Pih
          @@ -217,20 +217,20 @@
          - Parameters: + Parameters: - - - - @@ -242,9 +242,9 @@
          form + form * + The name of the form
          order + order * + The order of placement of the form widget within the form

          -
          +
          widget::create_param_value -
            by Michael Pih +
            by Michael Pih
          @@ -253,27 +253,27 @@
          - Parameters: + Parameters: - - - - - - @@ -285,9 +285,9 @@
          form + form * + The name of the form
          order + order * + The order of placement of the form widget within the form
          is_required + is_required * + A flag indicating whether the value of the form widget param is mandatory

          -
          +
          widget::create_text_param -
            by Michael Pih +
            by Michael Pih
          @@ -296,34 +296,34 @@
          - Parameters: + Parameters: - - - - - - - - @@ -335,9 +335,9 @@
          form + form * + The name of the form
          default + default * + The default value for the form widget param value
          is_required + is_required * + A flag indicating whether the value of the form widget param is mandatory
          param_source + param_source * + The deafult param source for the form widget param value (literal, query, eval)

          -
          +
          widget::create_values_param -
            by Michael Pih +
            by Michael Pih
          @@ -346,41 +346,41 @@
          - Parameters: + Parameters: - - - - - - - - - - @@ -392,9 +392,9 @@
          form + form * + The name of the form
          order + order * + The order of placement of the form widget within the metadata form
          default + default * + The default value of the form widget param value
          is_required + is_required * + A flag indicating whether the form widget param value is mandatory
          param_source + param_source * + The default param_source for the form widget param value (literal, query, eval)

          -
          + +
          widget::process_param -
            by Michael Pih +
            by Michael Pih
          @@ -403,41 +403,41 @@
          - Parameters: + Parameters: - - - - - - - - - - @@ -451,7 +451,7 @@

          -

          +

          * indicates required

          Index: openacs-4/packages/acs-templating/www/doc/api/database.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/api/database.adp,v diff -u -N -r1.2.2.1 -r1.2.2.2 --- openacs-4/packages/acs-templating/www/doc/api/database.adp 25 Aug 2015 18:02:13 -0000 1.2.2.1 +++ openacs-4/packages/acs-templating/www/doc/api/database.adp 22 Jun 2016 07:48:44 -0000 1.2.2.2 @@ -46,19 +46,19 @@

          Note(s)

            -
          • Valid values for structure are onevalue, onerow, -multirow, onelist, nestedlist and multilist. +
          • Valid values for structure are onevalue, onerow, +multirow, onelist, nestedlist and multilist.
          • -sql may be any valid SQL statement whose result set +sql may be any valid SQL statement whose result set has the appropriate dimensions for the desired -structure.
          • The db parameter is optional. If no parameter is +structure.
          • The db parameter is optional. If no parameter is supplied, a handle will be requested to perform the query and then -released immediately.
          • The startrow and maxrows parameters are valid +released immediately.
          • The startrow and maxrows parameters are valid only for multirow queries. They may be specified to limit the rows -from the query result that are included in the data source.
          • The eval parameter takes a block of Tcl code to +from the query result that are included in the data source.
          • The eval parameter takes a block of Tcl code to perform on each row of a multirow query as it is fetched from the -database. The code may refer to the row array to get and -set column values.
          • The bind option is valid only when using Oracle.
          • +database. The code may refer to the row array to get and +set column values.
          • The bind option is valid only when using Oracle.

          templating\@arsdigita.com Index: openacs-4/packages/acs-templating/www/doc/api/database.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/api/database.html,v diff -u -N -r1.1.1.1 -r1.1.1.1.30.1 --- openacs-4/packages/acs-templating/www/doc/api/database.html 13 Mar 2001 22:59:27 -0000 1.1.1.1 +++ openacs-4/packages/acs-templating/www/doc/api/database.html 22 Jun 2016 07:48:44 -0000 1.1.1.1.30.1 @@ -4,7 +4,7 @@

          Database Query

          - Templating System : API Reference + Templating System : API Reference

          Summary

          @@ -56,27 +56,27 @@

          Note(s)

            -
          • Valid values for structure are onevalue, - onerow, multirow, onelist, nestedlist and multilist. +
          • Valid values for structure are onevalue, + onerow, multirow, onelist, nestedlist and multilist. -
          • sql may be any valid SQL statement whose result set has the - appropriate dimensions for the desired structure. +
          • sql may be any valid SQL statement whose result set has the + appropriate dimensions for the desired structure. -
          • The db parameter is optional. If no parameter is supplied, +
          • The db parameter is optional. If no parameter is supplied, a handle will be requested to perform the query and then released immediately. -
          • The startrow and maxrows +
          • The startrow and maxrows parameters are valid only for multirow queries. They may be specified to limit the rows from the query result that are included in the data source. -
          • The eval parameter takes a block of Tcl code to perform +
          • The eval parameter takes a block of Tcl code to perform on each row of a multirow query as it is fetched from the - database. The code may refer to the row array to get and + database. The code may refer to the row array to get and set column values. -
          • The bind option is valid only when using Oracle. +
          • The bind option is valid only when using Oracle.

          Index: openacs-4/packages/acs-templating/www/doc/api/element.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/api/element.adp,v diff -u -N -r1.2.2.2 -r1.2.2.3 --- openacs-4/packages/acs-templating/www/doc/api/element.adp 1 Dec 2015 11:18:00 -0000 1.2.2.2 +++ openacs-4/packages/acs-templating/www/doc/api/element.adp 22 Jun 2016 07:48:44 -0000 1.2.2.3 @@ -22,19 +22,19 @@

          Append a new element to the specified form.

            -
          • The html switch may be used to include additional HTML -attributes in the input, select, or -textarea tag used to ultimately render the element.
          • The validate switch may be used to perform simple -custom validation of each element value. type is a keyword +
          • The html switch may be used to include additional HTML +attributes in the input, select, or +textarea tag used to ultimately render the element.
          • The validate switch may be used to perform simple +custom validation of each element value. type is a keyword for the type of validation being performed. This same keyword must -be referenced by the formerror tag to customize the +be referenced by the formerror tag to customize the presentation and layout of the error message for this validation -step. expression must be a block of arbitrary Tcl code +step. expression must be a block of arbitrary Tcl code that evaluates to 1 (valid) or 0 (not valid). The variable -$value may be used in the expression to reference the -element value. message is simply a string containing a +$value may be used in the expression to reference the +element value. message is simply a string containing a message to return to the user if validation fails. The variables -$value and $label may be used in the message to +$value and $label may be used in the message to reference the parameter value and label (or name if no label is supplied).
          Index: openacs-4/packages/acs-templating/www/doc/api/element.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/api/element.html,v diff -u -N -r1.2 -r1.2.24.1 --- openacs-4/packages/acs-templating/www/doc/api/element.html 17 May 2003 10:05:51 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/api/element.html 22 Jun 2016 07:48:44 -0000 1.2.24.1 @@ -4,7 +4,7 @@

          Form Element

          - Templating System : API Reference + Templating System : API Reference

          Summary

          @@ -31,23 +31,23 @@

          Append a new element to the specified form.

            -
          • The html switch may be used to include additional HTML +
          • The html switch may be used to include additional HTML attributes - in the input, select, or textarea tag + in the input, select, or textarea tag used to ultimately render the element. -
          • The validate switch may be used to perform simple - custom validation of each element value. type is a keyword +
          • The validate switch may be used to perform simple + custom validation of each element value. type is a keyword for the type of validation being performed. This same keyword must - be referenced by the formerror tag to customize + be referenced by the formerror tag to customize the presentation and layout of the error message for this validation - step. expression must be a block of arbitrary Tcl code + step. expression must be a block of arbitrary Tcl code that evaluates to 1 (valid) or 0 (not valid). The variable - $value may be used in the expression to reference the - element value. message is simply a string containing a + $value may be used in the expression to reference the + element value. message is simply a string containing a message to return to the user if validation fails. The variables - $value and $label may be used in the message to + $value and $label may be used in the message to reference the parameter value and label (or name if no label is supplied).
          Index: openacs-4/packages/acs-templating/www/doc/api/form.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/api/form.adp,v diff -u -N -r1.2.2.1 -r1.2.2.2 --- openacs-4/packages/acs-templating/www/doc/api/form.adp 25 Aug 2015 18:02:13 -0000 1.2.2.1 +++ openacs-4/packages/acs-templating/www/doc/api/form.adp 22 Jun 2016 07:48:44 -0000 1.2.2.2 @@ -13,7 +13,7 @@

          Initialize data structures for a dynamic form. This procedure must be called before adding elements to the form.

          • Additional attributes to include in the HTML form tag may be -specified with the html option.
          +specified with the html option.
           template::form is_request name
           
          Index: openacs-4/packages/acs-templating/www/doc/api/form.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/api/form.html,v diff -u -N -r1.1.1.1 -r1.1.1.1.30.1 --- openacs-4/packages/acs-templating/www/doc/api/form.html 13 Mar 2001 22:59:27 -0000 1.1.1.1 +++ openacs-4/packages/acs-templating/www/doc/api/form.html 22 Jun 2016 07:48:44 -0000 1.1.1.1.30.1 @@ -4,7 +4,7 @@

          Form

          - Templating System : API Reference + Templating System : API Reference

          Summary

          @@ -22,7 +22,7 @@
          • Additional attributes to include in the HTML form tag may be - specified with the html option. + specified with the html option.
          template::form is_request name
          Index: openacs-4/packages/acs-templating/www/doc/api/multirow.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/api/multirow.adp,v diff -u -N -r1.2.2.2 -r1.2.2.3 --- openacs-4/packages/acs-templating/www/doc/api/multirow.adp 9 Jun 2016 13:03:12 -0000 1.2.2.2 +++ openacs-4/packages/acs-templating/www/doc/api/multirow.adp 22 Jun 2016 07:48:44 -0000 1.2.2.3 @@ -14,8 +14,8 @@

          Get a particular column value or a reference to an entire row.

          • Rows are indexed starting with 1.
          • If a column name is omitted, this procedure will set -name to be a reference to an array containing the values -for the row specified by index.
          • +name to be a reference to an array containing the values +for the row specified by index.
          @@ -58,7 +58,7 @@
             set full_name "$foo(first_name) $foo(last_name)"
           

          Note(s)

          -
          • Use the eval option to template::query to modify +
            • Use the eval option to template::query to modify column values while building a data source from a multirow query result.

            Index: openacs-4/packages/acs-templating/www/doc/api/multirow.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/api/multirow.html,v diff -u -N -r1.2 -r1.2.24.1 --- openacs-4/packages/acs-templating/www/doc/api/multirow.html 12 Feb 2003 10:02:08 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/api/multirow.html 22 Jun 2016 07:48:44 -0000 1.2.24.1 @@ -4,7 +4,7 @@

            Multirow

            - Templating System : API Reference + Templating System : API Reference

            Summary

            @@ -13,49 +13,49 @@

            Methods

            -
            multirow get name index column
            +
            multirow get name index column

            Get a particular column value or a reference to an entire row.

            • Rows are indexed starting with 1. -
            • If a column name is omitted, this procedure will set name +
            • If a column name is omitted, this procedure will set name to be a reference to an array containing the values for the row - specified by index. + specified by index.
            -
            multirow set name index column value
            +
            multirow set name index column value

            Set the value of a column in a specified row.

            -
            multirow size name
            +
            multirow size name

            Get the number of rows in the data source.

            -
            multirow create name column [column ...]
            +
            multirow create name column [column ...]

            Set up a new multirow data source. This is an alternative to - having db_multirow create + having db_multirow create the data source.

            -
            multirow append name value [value ...]
            +
            multirow append name value [value ...]

            Add a row at the end of the data source. Extra values are dropped, missing values default to the empty string

            -
            multirow map name body
            +
            multirow map name body

            Evaluate body for each row of the data source, and @@ -84,7 +84,7 @@

            Note(s)

              -
            • Use the eval option to template::query to modify column +
            • Use the eval option to template::query to modify column values while building a data source from a multirow query result.
            Index: openacs-4/packages/acs-templating/www/doc/api/request.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/api/request.adp,v diff -u -N -r1.2.2.1 -r1.2.2.2 --- openacs-4/packages/acs-templating/www/doc/api/request.adp 25 Aug 2015 18:02:13 -0000 1.2.2.1 +++ openacs-4/packages/acs-templating/www/doc/api/request.adp 22 Jun 2016 07:48:44 -0000 1.2.2.2 @@ -25,39 +25,39 @@

            Validates request parameter values and then sets a local variable. Values are transformed if a transformation procedure exists for the specified datatype (i.e. the components of a -date are assembled into a single structure).

            +date are assembled into a single structure).

              -
            • Options for datatype are the same as for form -elements.
            • The multiple switch indicates that more than one value +
            • Options for datatype are the same as for form +elements.
            • The multiple switch indicates that more than one value may be submitted. The local variable set by the procedure will be a -list.
            • The optional switch indicates that the parameter value +list.
            • The optional switch indicates that the parameter value may be empty or missing. A value is assumed to be required if this -switch is not specified.
            • The validate switch may be used to perform simple -custom validation of each parameter value. expression must +switch is not specified.
            • The validate switch may be used to perform simple +custom validation of each parameter value. expression must be a block of arbitrary Tcl code that evaluates to 1 (valid) or 0 -(not valid). The variable $value may be used in the -expression to reference the parameter value. message is +(not valid). The variable $value may be used in the +expression to reference the parameter value. message is simply a string containing a message to return to the user if -validation fails. The variables $value and $label +validation fails. The variables $value and $label may be used in the message to reference the parameter value and label (or name if no label is supplied).
             template::request get_param name
             
            -

            Returns the value (or values if the multiple is used) +

            Returns the value (or values if the multiple is used) of the named parameter.

             template::request is_valid error_url
             

            Boolean procedure for determining whether any validation errors occurred while setting request parameters.

            • -error_url is the location of the template to use for +error_url is the location of the template to use for reporting request errors. The default is -/ats/templates/messages/request-error if no URL is +/ats/templates/messages/request-error if no URL is specified. To report request errors in the template of the page -itself, use self for the URL.
            +itself, use self for the URL.

          Example

           request create
          @@ -77,10 +77,10 @@
           

          Note(s)

          • Error reporting templates may reference the -requesterror array to access error messages for each +requesterror array to access error messages for each parameter.
          • The request API provides a simple mechanism for processing request parameters. It is not intended as a replacement to -ad_page_contract for sites built on the ArsDigita +ad_page_contract for sites built on the ArsDigita Community System.

          Index: openacs-4/packages/acs-templating/www/doc/api/request.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/api/request.html,v diff -u -N -r1.1.1.1 -r1.1.1.1.30.1 --- openacs-4/packages/acs-templating/www/doc/api/request.html 13 Mar 2001 22:59:27 -0000 1.1.1.1 +++ openacs-4/packages/acs-templating/www/doc/api/request.html 22 Jun 2016 07:48:44 -0000 1.1.1.1.30.1 @@ -4,7 +4,7 @@

          Page Request

          - Templating System : API Reference + Templating System : API Reference

          Summary

          @@ -31,33 +31,33 @@

          Validates request parameter values and then sets a local variable. Values are transformed if a transformation procedure exists for the -specified datatype (i.e. the components of a date are +specified datatype (i.e. the components of a date are assembled into a single structure).

            -
          • Options for datatype are the same as for form elements. -
          • The multiple switch indicates that more than one value +
          • Options for datatype are the same as for form elements. +
          • The multiple switch indicates that more than one value may be submitted. The local variable set by the procedure will be a list. -
          • The optional switch indicates that the parameter value may be +
          • The optional switch indicates that the parameter value may be empty or missing. A value is assumed to be required if this switch is not specified. -
          • The validate switch may be used to perform simple - custom validation of each parameter value. expression +
          • The validate switch may be used to perform simple + custom validation of each parameter value. expression must be a block of arbitrary Tcl code that evaluates to 1 - (valid) or 0 (not valid). The variable $value may be + (valid) or 0 (not valid). The variable $value may be used in the expression to reference the parameter value. - message is simply a string + message is simply a string containing a message to return to the user if validation fails. - The variables $value and $label may be used in + The variables $value and $label may be used in the message to reference the parameter value and label (or name if no label is supplied).
          template::request get_param name
          -

          Returns the value (or values if the multiple is used) of +

          Returns the value (or values if the multiple is used) of the named parameter.

          template::request is_valid error_url
          @@ -66,11 +66,11 @@ while setting request parameters.

            -
          • error_url is the location of the template to use for +
          • error_url is the location of the template to use for reporting request errors. The default is - /ats/templates/messages/request-error if no URL is + /ats/templates/messages/request-error if no URL is specified. To report request errors in the template of the page - itself, use self for the URL. + itself, use self for the URL.

          Example

          @@ -94,11 +94,11 @@

          Note(s)

            -
          • Error reporting templates may reference the requesterror +
          • Error reporting templates may reference the requesterror array to access error messages for each parameter.
          • The request API provides a simple mechanism for processing request parameters. It is not intended as a replacement to - ad_page_contract for sites built on the ArsDigita + ad_page_contract for sites built on the ArsDigita Community System.
          Index: openacs-4/packages/acs-templating/www/doc/appendices/memory.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/appendices/memory.adp,v diff -u -N -r1.2.2.2 -r1.2.2.3 --- openacs-4/packages/acs-templating/www/doc/appendices/memory.adp 1 Dec 2015 11:18:00 -0000 1.2.2.2 +++ openacs-4/packages/acs-templating/www/doc/appendices/memory.adp 22 Jun 2016 07:48:44 -0000 1.2.2.3 @@ -82,16 +82,16 @@ base template. For example, the templating system itself generates form templates based on a generic "style" template. The generic template primarily depends on a single data source, -elements, which references the element list for a -particular form object. A single multipleloop is used to -lay out the specific formwidget and formgroup +elements, which references the element list for a +particular form object. A single multipleloop is used to +lay out the specific formwidget and formgroup tags, along with labels and validation text, for the form. The output of this first step is then rendered into HTML and returned to the user.

          Note that the generic "style" template contains templating tags -(formwidget, formgroup, if etc.) that +(formwidget, formgroup, if etc.) that must be "protected" during the first step. The templating system -provides the noparse +provides the noparse tag to do this.


          templating\@arsdigita.com Index: openacs-4/packages/acs-templating/www/doc/appendices/memory.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/appendices/memory.html,v diff -u -N -r1.1.1.1 -r1.1.1.1.30.1 --- openacs-4/packages/acs-templating/www/doc/appendices/memory.html 13 Mar 2001 22:59:27 -0000 1.1.1.1 +++ openacs-4/packages/acs-templating/www/doc/appendices/memory.html 22 Jun 2016 07:48:44 -0000 1.1.1.1.30.1 @@ -4,7 +4,7 @@

          Parsing Templates in Memory

          - Templating System + Templating System

          The templating system code is oriented towards parsing templates @@ -91,17 +91,17 @@

          In some cases, the template itself may be based on yet another base template. For example, the templating system itself generates form templates based on a generic "style" template. The generic template -primarily depends on a single data source, elements, which +primarily depends on a single data source, elements, which references the element list for a particular form object. A single -multipleloop is used to lay out the specific -formwidget and formgroup tags, along with labels and +multipleloop is used to lay out the specific +formwidget and formgroup tags, along with labels and validation text, for the form. The output of this first step is then rendered into HTML and returned to the user.

          Note that the generic "style" template contains templating tags -(formwidget, formgroup, if etc.) that must +(formwidget, formgroup, if etc.) that must be "protected" during the first step. The templating system provides -the noparse tag to do this.

          +the noparse tag to do this.


          templating@arsdigita.com
          Index: openacs-4/packages/acs-templating/www/doc/demo/embed_escape.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/demo/embed_escape.adp,v diff -u -N -r1.2.2.1 -r1.2.2.2 --- openacs-4/packages/acs-templating/www/doc/demo/embed_escape.adp 9 Jun 2016 13:03:12 -0000 1.2.2.1 +++ openacs-4/packages/acs-templating/www/doc/demo/embed_escape.adp 22 Jun 2016 07:48:44 -0000 1.2.2.2 @@ -7,9 +7,9 @@

          <% if { $x == 5 } { %> - Yes, x is indeed 5. + Yes, x is indeed 5. <% } else { %> - No, x is not 5. + No, x is not 5. <% } %>

          Index: openacs-4/packages/acs-templating/www/doc/demo/if.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/demo/if.adp,v diff -u -N -r1.4.2.1 -r1.4.2.2 --- openacs-4/packages/acs-templating/www/doc/demo/if.adp 9 Jun 2016 13:03:12 -0000 1.4.2.1 +++ openacs-4/packages/acs-templating/www/doc/demo/if.adp 22 Jun 2016 07:48:44 -0000 1.4.2.2 @@ -5,13 +5,13 @@

          Conditional Expressions

          -

          The value of x is @x@
          - The value of y is @y@
          - The value of n is @n@
          - The value of bool_t_p is @bool_t_p@
          - The value of bool_1_p is @bool_1_p@
          - The value of bool_f_p is @bool_f_p@
          - The value of bool_0_p is @bool_0_p@

          +

          The value of x is @x@
          + The value of y is @y@
          + The value of n is @n@
          + The value of bool_t_p is @bool_t_p@
          + The value of bool_1_p is @bool_1_p@
          + The value of bool_f_p is @bool_f_p@
          + The value of bool_0_p is @bool_0_p@

          db + db * + A database handle
          form + form * + The name of the form
          order + order * + The order of placement of the param form widgets within the form
          content_type + content_type * + The content type to which the attribute belongs
          attribute_name + attribute_name * + The name of the attribute
          @@ -20,105 +20,105 @@ - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + +
          Result
          eqif \@x\@ eq 5X is 5X is not 5
          eqif \@x\@ eq 5X is 5X is not 5
          eqif \@x\@ eq 6X is 6X is not 6
          eqif \@x\@ eq 6X is 6X is not 6
          eqif \@n\@ eq "Fred's Flute"N is "Fred's Flute" - N is not "Fred's Flute"
          eqif \@n\@ eq "Fred's Flute"N is "Fred's Flute" + N is not "Fred's Flute"
          eqif \@n\@ eq "Fred"N is "Fred" - N is not "Fred"
          eqif \@n\@ eq "Fred"N is "Fred" + N is not "Fred"
          definedif \@x\@ definedx is defined - x is undefined
          definedif \@x\@ definedx is defined + x is undefined
          nilif \@x\@ nilx is nil - x is nonnil
          nilif \@x\@ nilx is nil + x is nonnil
          definedif \@z\@ definedz is defined - z is undefined
          definedif \@z\@ definedz is defined + z is undefined
          nilif \@z\@ nilz is nil - z is nonnil
          nilif \@z\@ nilz is nil + z is nonnil
          definedif \@w\@ definedw is defined - w is undefined
          definedif \@w\@ definedw is defined + w is undefined
          nilif \@w\@ nilw is nil - w is nonnil
          nilif \@w\@ nilw is nil + w is nonnil
          nilif \@w\@ nilw is nil - w is nonnil
          nilif \@w\@ nilw is nil + w is nonnil
          trueif \@bool_t_p\@ trueok - not ok
          trueif \@bool_t_p\@ trueok + not ok
          trueif \@bool_1_p\@ trueok - not ok
          trueif \@bool_1_p\@ trueok + not ok
          true shortif \@bool_t_p\@ok - not ok
          true shortif \@bool_t_p\@ok + not ok
          true shortif \@bool_1_p\@ok - not ok
          true shortif \@bool_1_p\@ok + not ok
          falseif \@bool_f_p\@ falseok - not ok
          falseif \@bool_f_p\@ falseok + not ok
          falseif \@bool_0_p\@ falseok - not ok
          falseif \@bool_0_p\@ falseok + not ok
          Index: openacs-4/packages/acs-templating/www/doc/demo/included.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/demo/included.adp,v diff -u -N -r1.1.1.1 -r1.1.1.1.30.1 --- openacs-4/packages/acs-templating/www/doc/demo/included.adp 13 Mar 2001 22:59:27 -0000 1.1.1.1 +++ openacs-4/packages/acs-templating/www/doc/demo/included.adp 22 Jun 2016 07:48:44 -0000 1.1.1.1.30.1 @@ -1,5 +1,5 @@

          This is the included template fragment here.

          -

          Hello @name@!

          +

          Hello @name@!

          \ No newline at end of file Index: openacs-4/packages/acs-templating/www/doc/demo/index.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/demo/index.html,v diff -u -N -r1.13 -r1.13.2.1 --- openacs-4/packages/acs-templating/www/doc/demo/index.html 10 Jun 2015 12:09:58 -0000 1.13 +++ openacs-4/packages/acs-templating/www/doc/demo/index.html 22 Jun 2016 07:48:44 -0000 1.13.2.1 @@ -17,7 +17,7 @@

          General

          - +
          @@ -77,7 +77,7 @@

          Combining templates

          -
          Description
          +
          @@ -138,7 +138,7 @@

          Embedded Tcl

          -
          Description Data
          +
          @@ -189,7 +189,7 @@ change them with "editing: several pages in one" in section Using the Form Manager below. -
          Description
          +
          @@ -257,7 +257,7 @@

          Both Iteration and Composition

          -

          Description
          +
          @@ -302,7 +302,7 @@

          Using ListBuilder

          -
          Description Data
          +
          @@ -468,7 +468,7 @@

          Forms

          -
          Description Data
          +
          @@ -506,7 +506,7 @@

          Using the Form Manager.

          -
          Description Data
          +
          Index: openacs-4/packages/acs-templating/www/doc/demo/sandwich-grid.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/demo/sandwich-grid.adp,v diff -u -N -r1.4.2.3 -r1.4.2.4 --- openacs-4/packages/acs-templating/www/doc/demo/sandwich-grid.adp 9 Jun 2016 13:03:12 -0000 1.4.2.3 +++ openacs-4/packages/acs-templating/www/doc/demo/sandwich-grid.adp 22 Jun 2016 07:48:44 -0000 1.4.2.4 @@ -19,14 +19,14 @@
          Description Data
          - + - + - +
          Sandwich Name  Sandwich Name   -
          @formerror.nickname@
          +
          @formerror.nickname@
          Protein  Protein   @@ -46,11 +46,11 @@
          -
          @formerror.protein@
          +
          @formerror.protein@
          Vitamins  Vitamins   @@ -70,7 +70,7 @@
          -
          @formerror.vitamins@
          +
          @formerror.vitamins@
          Index: openacs-4/packages/acs-templating/www/doc/exercise/ats-for-designers.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/exercise/ats-for-designers.adp,v diff -u -N -r1.2.2.3 -r1.2.2.4 --- openacs-4/packages/acs-templating/www/doc/exercise/ats-for-designers.adp 9 Jun 2016 13:03:12 -0000 1.2.2.3 +++ openacs-4/packages/acs-templating/www/doc/exercise/ats-for-designers.adp 22 Jun 2016 07:48:44 -0000 1.2.2.4 @@ -202,8 +202,8 @@

          Creating forms with ATS can be as simple as inserting two tags into a page. Try this: open form-sample.adp and add the two following ATS tags:

          -
          <formtemplate -id="add_entry"></formtemplate>
          +
          <formtemplate +id="add_entry"></formtemplate>

          Save the page and reload it. You should see now see a big baby-blue form block; this is the ATS default style for form presentation. Aside from requiring no HTML code, the Index: openacs-4/packages/acs-templating/www/doc/exercise/ats-for-designers.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/exercise/ats-for-designers.html,v diff -u -N -r1.1.1.1 -r1.1.1.1.30.1 --- openacs-4/packages/acs-templating/www/doc/exercise/ats-for-designers.html 13 Mar 2001 22:59:27 -0000 1.1.1.1 +++ openacs-4/packages/acs-templating/www/doc/exercise/ats-for-designers.html 22 Jun 2016 07:48:44 -0000 1.1.1.1.30.1 @@ -5,7 +5,7 @@

          The ACS Templating System for Web Designers

          -Templating System : Templating Exercise +Templating System : Templating Exercise

          Reading

          @@ -51,7 +51,7 @@

          -Exercise 1: Onevalues, onelists, multilists and multirows
          +Exercise 1: Onevalues, onelists, multilists and multirows
          (nestedlists, too?)

          Let's first take a look at some list and variable tags in action. Open up another @@ -77,12 +77,12 @@ .adp file, are cycled repeatedly to show multiple sets of information when displayed in list-and-var-sample.acs; example:

          -    <multiple name="your_multirow">
          -    <tr><td>@your_multirow.first_names@ @your_multirow.last_name@ </td> </tr>
          +    <multiple name="your_multirow">
          +    <tr><td>@your_multirow.first_names@ @your_multirow.last_name@ </td> </tr>
               </multiple>
               
          The user will see one table row filled with a different person's name for each row contained in the multirow - your_multirow. + your_multirow.
        • multirow variables are identified with this format: @<name of the multirow>.<name of a field in the multirow>@, and can only be called within their respective @@ -132,7 +132,7 @@ and movies you've possibly never seen.

          -Exercise Two: <if> and <else>, the conditional tags +Exercise Two: <if> and <else>, the conditional tags

          Dynamic data implies a changing page, and also changing presentation. The <if> and <else> tags allow @@ -149,16 +149,16 @@

        • in Tcl all variables, even numbers, are stored as text strings with quantitative values, so conditions like less than, greater than, and (not) between can also - be used with text to determine alphabetical order: a < b < ... < - z, lower-case letters are greater than upper-case, and numbers less than letters. + be used with text to determine alphabetical order: a < b < ... < + z, lower-case letters are greater than upper-case, and numbers less than letters. Example: "you" are greater than "me", and "I" am less than "you"
        • the "between" conditions checks inclusively, so <if 2 between 2 6> will test true
        • <if @a@ between @b@ @c@> requires that @a@ is greater than or equal to @b@ - and less than or equal to @c@; so <if + and less than or equal to @c@; so <if @x@ between 4 2> will always test false
        • the "in" condition uses a regular expression check (or will it? come @@ -171,11 +171,11 @@ description reads "likes chocolate" when likes_chocolate_p is "t", "doesn't like chocolate" when likes_chocolate_p is "f", or "probably like chocolate" if likes_chocolate_p is an empty string. -Also, add one <if>, and one <if> only, so that a is appropriately -changed to an for any 11-, 18- or 80- to 89-year olds. +Also, add one <if>, and one <if> only, so that a is appropriately +changed to an for any 11-, 18- or 80- to 89-year olds.

          -Exercise Three: The <master> and <slave> tags -- a call to the dominatrix in you +Exercise Three: The <master> and <slave> tags -- a call to the dominatrix in you

          The <master> and <slave> tags allow you to maintain a consistent style and format among pages @@ -211,7 +211,7 @@

        • the master page can be viewed at its own .acs page, but shows nothing in place of the <slave> tag
        • you can have nested slave sections, that is, a slave section within another slave
        • -
        • you cannot have two different slave sections within the same master (go ahead +
        • you cannot have two different slave sections within the same master (go ahead and try adding an extra <slave> tag to a master page to see what happens)
        • <property> tags are used within a slave section to pass text, HTML and references to local datasources up to the master page; these values @@ -233,14 +233,14 @@ with some slave-specific title.

          -Exercise Four: The functions of <formtemplate>
          +Exercise Four: The functions of <formtemplate>

          Creating forms with ATS can be as simple as inserting two tags into a page. Try this: open form-sample.adp and add the two following ATS tags:

          - + <formtemplate id="add_entry"></formtemplate> - +

          Save the page and reload it. You should see now see a big baby-blue form block; this is the @@ -276,7 +276,7 @@ There are noticeable differences between the two form templates, most obviously the lack of background color and a few missing entry fields in the manually constructed one. Maybe not so noticeable -is the grouping of entry widgets into one HTML table row (check out the Name field) and +is the grouping of entry widgets into one HTML table row (check out the Name field) and the multi-input combination of text entry boxes and radio buttons for entering telephone number information. Take a look at how the phone information entry section is constructed in form-sample.adp. Note specifically: <formgroup> is somewhat similar to @@ -298,17 +298,17 @@

          -Exercise Five: more fun with multirows +Exercise Five: more fun with multirows

          Now that you've confidently added the conditional <if> and <else> tags to your ATS toolbelt, it's time to put those tools to good use in formatting multirow data. First, read the docs to learn about -the automatcally generated @your_multirow.rownum@ column, -the @your_multirow:rowcount@ onevalue which contains +the automatcally generated @your_multirow.rownum@ column, +the @your_multirow:rowcount@ onevalue which contains the total number of rows contained in your multirow, and the <multiple> startrow and maxrows attributes. Possible point of confusion: the variable -@your_multirow:rowcount@ is a onevalue and not a column of the -multirow your_multirow, so it need not be used within <multiple> +@your_multirow:rowcount@ is a onevalue and not a column of the +multirow your_multirow, so it need not be used within <multiple> tags and in many cases should not be used within <multiple> tags. Why is this? (Take a look at how @address:rowcount@ is used.) Index: openacs-4/packages/acs-templating/www/doc/exercise/form-sample-revised.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/exercise/form-sample-revised.adp,v diff -u -N -r1.1.1.1 -r1.1.1.1.30.1 --- openacs-4/packages/acs-templating/www/doc/exercise/form-sample-revised.adp 13 Mar 2001 22:59:27 -0000 1.1.1.1 +++ openacs-4/packages/acs-templating/www/doc/exercise/form-sample-revised.adp 22 Jun 2016 07:48:44 -0000 1.1.1.1.30.1 @@ -1,7 +1,7 @@ My address book -Add an entry to your address book +Add an entry to your address book Index: openacs-4/packages/acs-templating/www/doc/exercise/form-sample.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/exercise/form-sample.adp,v diff -u -N -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-templating/www/doc/exercise/form-sample.adp 23 Jun 2015 14:23:08 -0000 1.4 +++ openacs-4/packages/acs-templating/www/doc/exercise/form-sample.adp 22 Jun 2016 07:48:44 -0000 1.4.2.1 @@ -4,36 +4,36 @@ -Add an entry to your address book +Add an entry to your address book - + - - - - - + + + + - - + + - - + + - +
          Name:
          Name:
          Gender: +
          Gender: @formgroup.label@ @formgroup.widget@
          Please include gender information about your entry subject
          Birthday:
          Address:
          City: State:
          Birthday:
          Address:
          City: State:
          Zip: Country:
          Zip: Country:
          Email:
          Relation:
          Email:
          Relation: @formgroup.widget@ @formgroup.label@
          Telephones:
          Telephones: -
          @formgroup.widget@@formgroup.label@
          please indicate your primary telephone +
          please indicate your primary telephone


        • @@ -68,7 +68,7 @@ -
          You currently have no entries in your addressbook
          You currently have no entries in your addressbook
          Index: openacs-4/packages/acs-templating/www/doc/exercise/list-and-var-sample.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/exercise/list-and-var-sample.adp,v diff -u -N -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-templating/www/doc/exercise/list-and-var-sample.adp 16 Jun 2015 08:53:39 -0000 1.4 +++ openacs-4/packages/acs-templating/www/doc/exercise/list-and-var-sample.adp 22 Jun 2016 07:48:44 -0000 1.4.2.1 @@ -11,7 +11,7 @@ This web page is the uniquely conceived brainchild of @name@, a product of long @time_periods@ of assiduous labor and the creative genius of @name@. Esoteric, unforeseen, and unforgettable, -this web page stands as a monument to the singular and inimitable mind that is @name@. +this web page stands as a monument to the singular and inimitable mind that is @name@.

          Index: openacs-4/packages/acs-templating/www/doc/exercise/slave-sample-2.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/exercise/slave-sample-2.adp,v diff -u -N -r1.2 -r1.2.2.1 --- openacs-4/packages/acs-templating/www/doc/exercise/slave-sample-2.adp 16 Jun 2015 08:53:39 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/exercise/slave-sample-2.adp 22 Jun 2016 07:48:44 -0000 1.2.2.1 @@ -2,7 +2,7 @@ <master> and <slave> Demo:

          -while the rest of the page stays the same. +while the rest of the page stays the same.

          Index: openacs-4/packages/acs-templating/www/doc/exercise/slave-sample-3.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/exercise/slave-sample-3.adp,v diff -u -N -r1.2 -r1.2.2.1 --- openacs-4/packages/acs-templating/www/doc/exercise/slave-sample-3.adp 16 Jun 2015 08:53:39 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/exercise/slave-sample-3.adp 22 Jun 2016 07:48:44 -0000 1.2.2.1 @@ -2,8 +2,8 @@ <master> and <slave> Demo:

          -Be sure to note how the url has changed to reflect the slave's file name, and not the master's.
          -(In this case the master file is the same one you've been working with all along, of course)
          +Be sure to note how the url has changed to reflect the slave's file name, and not the master's.
          +(In this case the master file is the same one you've been working with all along, of course)

          Index: openacs-4/packages/acs-templating/www/doc/exercise/slave-sample-4.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/exercise/slave-sample-4.adp,v diff -u -N -r1.2 -r1.2.2.1 --- openacs-4/packages/acs-templating/www/doc/exercise/slave-sample-4.adp 16 Jun 2015 08:53:39 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/exercise/slave-sample-4.adp 22 Jun 2016 07:48:44 -0000 1.2.2.1 @@ -2,7 +2,7 @@ <master> and <slave> Demo:

          -Okay, I think you get the point. +Okay, I think you get the point.

          Index: openacs-4/packages/acs-templating/www/doc/exercise/slave-sample.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/exercise/slave-sample.adp,v diff -u -N -r1.2 -r1.2.2.1 --- openacs-4/packages/acs-templating/www/doc/exercise/slave-sample.adp 16 Jun 2015 08:53:39 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/exercise/slave-sample.adp 22 Jun 2016 07:48:44 -0000 1.2.2.1 @@ -8,7 +8,7 @@

          -The point of all this clicking about is just to show how this text area can be varied... +The point of all this clicking about is just to show how this text area can be varied...

          Index: openacs-4/packages/acs-templating/www/doc/gen/namespace-template.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/gen/namespace-template.adp,v diff -u -N -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-templating/www/doc/gen/namespace-template.adp 14 Jul 2015 22:26:56 -0000 1.4 +++ openacs-4/packages/acs-templating/www/doc/gen/namespace-template.adp 22 Jun 2016 07:48:44 -0000 1.4.2.1 @@ -7,7 +7,7 @@

          Namespace @info.name@

          -  by @info.author@ +  by @info.author@
          @info.overview@ @@ -43,7 +43,7 @@

          -Public Methods:
          +Public Methods:
          @@ -54,7 +54,7 @@

          -Private Methods:
          +Private Methods:
          Index: openacs-4/packages/acs-templating/www/doc/gen/proc-doc.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/gen/proc-doc.adp,v diff -u -N -r1.2.2.2 -r1.2.2.3 --- openacs-4/packages/acs-templating/www/doc/gen/proc-doc.adp 9 Jun 2016 13:03:12 -0000 1.2.2.2 +++ openacs-4/packages/acs-templating/www/doc/gen/proc-doc.adp 22 Jun 2016 07:48:44 -0000 1.2.2.3 @@ -11,7 +11,7 @@ namespace, procedure and directive. Each of these divisions has its own text marker(s). In the end, your Tcl file should look somthing like this: -

          
          +
          
           [------------------------------------------------------]
           [------  ignored text at beginning of file  -----------]
           [------------------------------------------------------]
          @@ -53,7 +53,7 @@
           
           
           # \@namespace ... <other namespaces>
          -
          +
          Note that comment lines are indented to indicate the manner in which they should be grouped only, and that there is no required Index: openacs-4/packages/acs-templating/www/doc/gen/proc-doc.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/gen/proc-doc.html,v diff -u -N -r1.2 -r1.2.2.1 --- openacs-4/packages/acs-templating/www/doc/gen/proc-doc.html 27 Oct 2014 16:40:22 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/gen/proc-doc.html 22 Jun 2016 07:48:44 -0000 1.2.2.1 @@ -7,66 +7,66 @@

          Using comments to document Tcl procedures

          -Templating System +Templating System

          Text divisions, grouping

          -< blah blah > +< blah blah > The Tcl proc parser relies on three main text markers to divvy the Tcl library file into neat compartments: namespace, procedure and directive. Each of these divisions has its own text marker(s). In the end, your Tcl file should look somthing like this:
          - +
           
           [------------------------------------------------------]
          -[------  ignored text at beginning of file  -----------]
          +[------  ignored text at beginning of file  -----------]
           [------------------------------------------------------]
           
          -# @namespace <name> <description of namespace>
          -	# <continued description>
          +# @namespace <name> <description of namespace>
          +	# <continued description>
           
          -	# @author <name of the primary author for this namespace>
          +	# @author <name of the primary author for this namespace>
           
          -	# @see <type of reference, like proc, namespace, url, or other> <full name of reference> <url of reference>
          -	# @see ... <more references>
          +	# @see <type of reference, like proc, namespace, url, or other> <full name of reference> <url of reference>
          +	# @see ... <more references>
           
           
          -   # (@public|@private) <name> <description of procedure>
          -     # <continued description>
          +   # (@public|@private) <name> <description of procedure>
          +     # <continued description>
           
          -     # @param <name> <default value> <description>
          -     # <continued description>
          +     # @param <name> <default value> <description>
          +     # <continued description>
           
          -     # @param ... <info for other paramaters>
          +     # @param ... <info for other paramaters>
           
          -     # @option <name> <default value> <description>
          -     # <continued description>
          +     # @option <name> <default value> <description>
          +     # <continued description>
           
          -     # @option ... <info for other options>
          +     # @option ... <info for other options>
            
          -     # @author <name of author>
          +     # @author <name of author>
           
          -     # @return <description of return variable>
          +     # @return <description of return variable>
           
          -     # @see <just like the namespace @see directive>
          +     # @see <just like the namespace @see directive>
           
                [------------------------------------------------------]
          -     [----------  source text for procedure  ---------------] 
          +     [----------  source text for procedure  ---------------] 
                [------------------------------------------------------]
           
           
          -   # @public or @private ... < more procedures within the same namespace >
          +   # @public or @private ... < more procedures within the same namespace >
           
           
          -# @namespace ... <other namespaces>
          +# @namespace ... <other namespaces>
           
           
          -
          +
          @@ -77,9 +77,9 @@ guideline of how the markers guide parsing may help those documenting their own work:
          -the @namespace marker +the @namespace marker
            -
          • @namespace is used to indicate the starting point of all text +
          • @namespace is used to indicate the starting point of all text -- code and comments -- related to the procedures contained within that namespace. All text between one @namespace marker and the next is parsed out as either Tcl proc source text or commentary of some sort
          • @@ -88,7 +88,7 @@ sections identified by
          -the @public/private markers +the @public/private markers
          • although this convention is in no way enforced, each Tcl procedure should be prefaced with an @private marker if the procedure is meant only for internal package use, @@ -101,7 +101,7 @@
          -the directive markers
          +the directive markers
          The commentary text that precedes a Tcl proc command should contain a list of directives identified by these markers:
          • @author
          • @@ -112,22 +112,22 @@
          The parser requires no specified ordering or grouping of these directives. Note: there should be one @param or @option directive marker for each parameter and option accepted by Tcl procedure. -For the @option and @parameter markers, +For the @option and @parameter markers, please follow one of the following formats, depending on whether or not the parameter or option you are detailing has a default value:
          with a default value:
          -# @(param|option) <parameter name> {default <description of default value>} <description or explanation> +# @(param|option) <parameter name> {default <description of default value>} <description or explanation>
          for required parameters:
          -# @param <parameter name> <description or explanation> +# @param <parameter name> <description or explanation>
          -Note that the literal curly brackets with the word default are required to include any +Note that the literal curly brackets with the word default are required to include any information about the option or parameter's default values. When default-value information is not included, -the entry value will be marked as required if it is a parameter, or display no information if it +the entry value will be marked as required if it is a parameter, or display no information if it is an option.

          For example: the fictional procedure grant_permission might be preceded by @@ -158,9 +158,9 @@ alert_admin_email would show no default-value description, and granter_id and privilege_id would show the the default info from above.

          -On to @see directive markers: +On to @see directive markers:

          -# @see <type of reference> <name of reference> <url of reference> +# @see <type of reference> <name of reference> <url of reference>
          Indicating the url of the reference is made somewhat simple because all namespaces will @@ -170,12 +170,12 @@
          
           # @see namespace util util.html
           # @see proc template::multirow::create multiow.html#template::multirow::create
          -# @see url <a picture of wally my dog> http://my.page.net/dogs/wally.jpg
          +# @see url <a picture of wally my dog> http://my.page.net/dogs/wally.jpg
           # @see proc doc::util::eat_chicken
           
          If you are referring to a namespace or procedure (use proc for the reference type), the -url value is optional as long as you use the full and completely qualified name of +url value is optional as long as you use the full and completely qualified name of the namespace or procedure.
          Index: openacs-4/packages/acs-templating/www/doc/gen/proc-template.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/gen/proc-template.adp,v diff -u -N -r1.2 -r1.2.2.1 --- openacs-4/packages/acs-templating/www/doc/gen/proc-template.adp 16 Jun 2015 08:53:39 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/gen/proc-template.adp 22 Jun 2016 07:48:44 -0000 1.2.2.1 @@ -1,6 +1,6 @@
          @info.proc_name@ -
            by @info.author@
          +
            by @info.author@
          @@ -9,7 +9,7 @@
          - Parameters: + Parameters: @@ -19,33 +19,33 @@
          - default @params.default@; + default @params.default@; @params.description@
          -
          Returns: +
          Returns:
          @info.return@ -
          Options: +
          Options:
          @options.name@ - default @options.default@; + default @options.default@; @options.description@
          -
          See Also: +
          See Also:
          @see.type@ - @see.name@
          Index: openacs-4/packages/acs-templating/www/doc/guide/components.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/guide/components.adp,v diff -u -N -r1.2.2.2 -r1.2.2.3 --- openacs-4/packages/acs-templating/www/doc/guide/components.adp 1 Dec 2015 11:18:00 -0000 1.2.2.2 +++ openacs-4/packages/acs-templating/www/doc/guide/components.adp 22 Jun 2016 07:48:44 -0000 1.2.2.3 @@ -23,7 +23,7 @@ scenarios. The basic process is to build a container template, which delineates the skeletal layout of the page. Component templates may then be placed in the container template with the -include tag. The container may pass arguments to the +include tag. The container may pass arguments to the components as needed for personalization or any other purpose.

          </td> - <td colspan=2><!-- AD BANNER --></td> + <td colspan="2"><!-- AD BANNER --></td> </tr> -<tr><td colspan=3><!-- NAVIGATION/CONTEXT BAR --></td></tr> +<tr><td colspan="3"><!-- NAVIGATION/CONTEXT BAR --></td></tr> <tr> <td><!-- SECTION LINKS --></td> - <td colspan=2> + <td colspan="2"> <!-- CONTENT --> - <slave> + <slave> </td> </tr> -<tr><td colspan=3><!-- FOOTER --></td></tr> +<tr><td colspan="3"><!-- FOOTER --></td></tr> </table></body></html>

          The only special feature of this master template is the -slave tag, which marks the location of the content area. +slave tag, which marks the location of the content area. Note that the content is inserted into the master template as a single passage of HTML or plain text. The master template should always -frame the content area within a td tag when using a table to +frame the content area within a td tag when using a table to specify the overall layout of the page. Page layouts that do not rely -on tables often use hr tags to demarcate the content area +on tables often use hr tags to demarcate the content area from the header and footer.

          Write the Page Template(s)

          -

          A page template must include a master tag to specify that +

          A page template must include a master tag to specify that its output should be enclosed in a master template:

          <master src="/templates/master">
          @@ -93,7 +93,7 @@
           <p><b>@byline@</b>: @text</p>
           ...
          -

          The master tag may be included anywhere in the body of the page +

          The master tag may be included anywhere in the body of the page template, although usually the top of the file is the best location for it.

          @@ -122,7 +122,7 @@

          As mentioned above, in many cases the dynamic elements of the master template depend on whatever is appearing in the content area -for a particular request. The property tag may be used in +for a particular request. The property tag may be used in the page template to specify values that should be passed to the master template:

          @@ -132,7 +132,7 @@ <!--Begin layout of page content--> ... -

          In this case, the property tag establishes title +

          In this case, the property tag establishes title as a data source for the master template. Properties are set as regular Tcl variables prior to executing the Tcl script associated with the master template. This allows the page template to pass an Index: openacs-4/packages/acs-templating/www/doc/guide/search.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/guide/search.adp,v diff -u -N -r1.2.2.1 -r1.2.2.2 --- openacs-4/packages/acs-templating/www/doc/guide/search.adp 25 Aug 2015 18:02:15 -0000 1.2.2.1 +++ openacs-4/packages/acs-templating/www/doc/guide/search.adp 22 Jun 2016 07:48:44 -0000 1.2.2.2 @@ -36,31 +36,31 @@ includes two different forms:

          1. Say the administrator wishes to edit the name and screen name of -a user. The administrator requests a page, user-edit.acs. -The page looks for a query parameter named user_id to -specify which user to edit.

          2. Initially, user_id is not specified. In this case, the +a user. The administrator requests a page, user-edit.acs. +The page looks for a query parameter named user_id to +specify which user to edit.

          3. Initially, user_id is not specified. In this case, the page includes a user search form.

          4. The user enters part of a user name or screen name and submits the form, which returns to the same URL with the query parameter -user_search. If this parameter is defined, the page -queries the database for potential matches.

          5. If one match is found, the page sets a user_id variable +user_search. If this parameter is defined, the page +queries the database for potential matches.

          6. If one match is found, the page sets a user_id variable and includes the actual user edit form.

          7. If multiple matches are found, the page includes a listing of users. The name of each each user is linked back to the same page, -with the appropriate user_id. The page prompts the +with the appropriate user_id. The page prompts the administrator to choose one. A link is also provided with no -user_id so that the administrator may search again.

          8. If the administrator chooses a user, the page detects the -user_id and displays the edit form.

          9. +user_id so that the administrator may search again.

          10. If the administrator chooses a user, the page detects the +user_id and displays the edit form.

          A working implementation of this example is provided in the -files demo/user-edit.tcl and demo/user-edit.adp. -You must execute the demo data file (demo/demo.sql) for +files demo/user-edit.tcl and demo/user-edit.adp. +You must execute the demo data file (demo/demo.sql) for the page to function.

          Try the following scenarios:

          1. Submit the search form without entering any search criteria.
          2. Submit the search form with obscure criteria that does not -yield a match.(i.e. zzzzz).
          3. Submit the search form with criteria likely to produce multiple -results (i.e. e).
          4. Submit the search form with criteria likely to product a single -result (i.e. Sally).
          5. +yield a match.(i.e. zzzzz).
          6. Submit the search form with criteria likely to produce multiple +results (i.e. e).
          7. Submit the search form with criteria likely to product a single +result (i.e. Sally).

          templating\@arsdigita.com Index: openacs-4/packages/acs-templating/www/doc/guide/search.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/guide/search.html,v diff -u -N -r1.1.1.1 -r1.1.1.1.30.1 --- openacs-4/packages/acs-templating/www/doc/guide/search.html 13 Mar 2001 22:59:27 -0000 1.1.1.1 +++ openacs-4/packages/acs-templating/www/doc/guide/search.html 22 Jun 2016 07:48:44 -0000 1.1.1.1.30.1 @@ -4,7 +4,7 @@

          Implementing Search-and-Select Forms

          - Templating System : User Guide + Templating System : User Guide

          Form designers are often confronted by the need to provide users @@ -44,46 +44,46 @@

          1. Say the administrator wishes to edit the name and screen name of a user. The administrator requests a page, - user-edit.acs. The page looks for a query parameter - named user_id to specify which user to edit.

            + user-edit.acs. The page looks for a query parameter + named user_id to specify which user to edit.

            -
          2. Initially, user_id is not specified. In this +

          3. Initially, user_id is not specified. In this case, the page includes a user search form.

          4. The user enters part of a user name or screen name and submits the form, which returns to the same URL with the query parameter - user_search. If this parameter is defined, the page + user_search. If this parameter is defined, the page queries the database for potential matches.

            -
          5. If one match is found, the page sets a user_id +

          6. If one match is found, the page sets a user_id variable and includes the actual user edit form.

          7. If multiple matches are found, the page includes a listing of users. The name of each each user is linked back to the same - page, with the appropriate user_id. The page prompts + page, with the appropriate user_id. The page prompts the administrator to choose one. A link is also provided with - no user_id so that the administrator may search + no user_id so that the administrator may search again.

          8. If the administrator chooses a user, the page detects the - user_id and displays the edit form.

            + user_id and displays the edit form.

          A working implementation of this example is provided in the files -demo/user-edit.tcl and demo/user-edit.adp. You must -execute the demo data file (demo/demo.sql) for the page to +demo/user-edit.tcl and demo/user-edit.adp. You must +execute the demo data file (demo/demo.sql) for the page to function.

          Try the following scenarios:

          1. Submit the search form without entering any search criteria.
          2. Submit the search form with obscure criteria that does not yield - a match.(i.e. zzzzz). + a match.(i.e. zzzzz).
          3. Submit the search form with criteria likely to produce multiple - results (i.e. e). + results (i.e. e).
          4. Submit the search form with criteria likely to product a single - result (i.e. Sally). + result (i.e. Sally).

          Index: openacs-4/packages/acs-templating/www/doc/guide/templates.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/guide/templates.adp,v diff -u -N -r1.3.2.3 -r1.3.2.4 --- openacs-4/packages/acs-templating/www/doc/guide/templates.adp 1 Dec 2015 11:18:02 -0000 1.3.2.3 +++ openacs-4/packages/acs-templating/www/doc/guide/templates.adp 22 Jun 2016 07:48:44 -0000 1.3.2.4 @@ -37,7 +37,7 @@ where users may assemble different types of content to their liking.

          (graphic)

          -

          See include.

          +

          See include.

          Property Declarations

          Template authors need a simple mechanism for declaring properties within the templates. The most common use of such @@ -46,13 +46,13 @@ include a search box. The data dictionary specifies available properties as well as the set of valid values when appropriate.

          (graphic)

          -

          See property.

          +

          See property.

          Conditional Insertion

          Designers often need to tailor the layout depending on the specific data being presented. For example, when presenting a list of library books that a user has checked out, the designer might want to highlight the overdue ones in red.

          -

          See if..else.

          +

          See if..else.

          Iteration

          Dynamic pages often present lists of values or records, each of which typically represents the results of a database query. @@ -73,7 +73,7 @@

          To accomodate these type of scenarios, the template parser sets some additional variables that the designer can reference to vary the layout from item to item.

          -

          See multiple, -group, list.

          +

          See multiple, +group, list.


          templating\@arsdigita.com Index: openacs-4/packages/acs-templating/www/doc/guide/templates.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/guide/templates.html,v diff -u -N -r1.1.1.1 -r1.1.1.1.30.1 --- openacs-4/packages/acs-templating/www/doc/guide/templates.html 13 Mar 2001 22:59:27 -0000 1.1.1.1 +++ openacs-4/packages/acs-templating/www/doc/guide/templates.html 22 Jun 2016 07:48:44 -0000 1.1.1.1.30.1 @@ -4,7 +4,7 @@

          Writing Templates

          - Templating System : User Guide + Templating System : User Guide

          Templates are the primary means for separating the work of @@ -48,7 +48,7 @@

          (graphic)

          -

          See include.

          +

          See include.

          Property Declarations

          @@ -61,7 +61,7 @@

          (graphic)

          -

          See property.

          +

          See property.

          Conditional Insertion

          @@ -70,7 +70,7 @@ books that a user has checked out, the designer might want to highlight the overdue ones in red.

          -

          See if..else.

          +

          See if..else.

          Iteration

          @@ -97,9 +97,9 @@ some additional variables that the designer can reference to vary the layout from item to item.

          -

          See multiple, - group, - list.

          +

          See multiple, + group, + list.


          templating@arsdigita.com Index: openacs-4/packages/acs-templating/www/doc/guide/wizards.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/guide/wizards.adp,v diff -u -N -r1.2.2.1 -r1.2.2.2 --- openacs-4/packages/acs-templating/www/doc/guide/wizards.adp 25 Aug 2015 18:02:16 -0000 1.2.2.1 +++ openacs-4/packages/acs-templating/www/doc/guide/wizards.adp 22 Jun 2016 07:48:44 -0000 1.2.2.2 @@ -10,25 +10,25 @@ Updated documentation of wizards

          Create a wizard

          -

          Use the wizard create command to initialize a wizard, -declaring any wizard state variables in the -params +

          Use the wizard create command to initialize a wizard, +declaring any wizard state variables in the -params option:

           wizard create make_sandwich -params { sandwich_id }
           

          See the wizard API for optional parameters to this command.

          Add steps

          -

          Once the wizard is created, use the wizard create +

          Once the wizard is created, use the wizard create command to add steps to it:

           wizard add make_sandwich -label "Add the lettuce" -url "add-lettuce"
           

          In auto-generated wizards, the wizard steps appear in the order they were created. See the wizard API for optional parameters to this command. Alternatively, -wizard steps can be created in the wizard create statement -with the -steps option:

          +wizard steps can be created in the wizard create statement +with the -steps option:

           wizard create make_sandwich -action "eat-sandwich.acs?sandwich_id=$sandwich_id" -params { 
             sandwich_id 
          @@ -40,9 +40,9 @@
           

          Setting wizard state variables

          Most likely, a wizard will store one or more state variables -using the -params option in the wizard create +using the -params option in the wizard create statement. At any point in the wizard process, a state variable's -value can be updated using the wizard set_param +value can be updated using the wizard set_param command.

           # check to see if a sandwich_id has been passed in by the wizard
          @@ -76,7 +76,7 @@
           

          In the .adp file:

           <formtemplate id=\@form_name\@ style=wizard>
           
          -
        • Advancing the wizard with the wizard forward command. +
        • Advancing the wizard with the wizard forward command. The page the wizard forwards to depends on which wizard submit button was pressed (next, repeat, previous, finish):
          Index: openacs-4/packages/acs-templating/www/doc/guide/wizards.html
          ===================================================================
          RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/guide/wizards.html,v
          diff -u -N -r1.3 -r1.3.24.1
          --- openacs-4/packages/acs-templating/www/doc/guide/wizards.html	30 Sep 2003 12:04:22 -0000	1.3
          +++ openacs-4/packages/acs-templating/www/doc/guide/wizards.html	22 Jun 2016 07:48:44 -0000	1.3.24.1
          @@ -4,7 +4,7 @@
             
             
             

          Integrating Forms into a Wizard

          - Templating System : User Guide + Templating System : User Guide

          This document outlines the steps necessary to build a dynamic form @@ -14,8 +14,8 @@

          Create a wizard

          -

          Use the wizard create command to initialize a wizard, declaring -any wizard state variables in the -params option:

          +

          Use the wizard create command to initialize a wizard, declaring +any wizard state variables in the -params option:

          wizard create make_sandwich -params { sandwich_id }
          @@ -24,15 +24,15 @@

          Add steps

          -

          Once the wizard is created, use the wizard create command to +

          Once the wizard is created, use the wizard create command to add steps to it:

          wizard add make_sandwich -label "Add the lettuce" -url "add-lettuce"

          In auto-generated wizards, the wizard steps appear in the order they were created. See the wizard API for -optional parameters to this command. Alternatively, wizard steps can be created in the wizard create -statement with the -steps option:

          +optional parameters to this command. Alternatively, wizard steps can be created in the wizard create +statement with the -steps option:

          wizard create make_sandwich -action "eat-sandwich.acs?sandwich_id=$sandwich_id" -params { 
             sandwich_id 
          @@ -46,9 +46,9 @@
           

          Setting wizard state variables

          Most likely, a wizard will store one or more state variables using the --params option in the wizard create statement. At any point +-params option in the wizard create statement. At any point in the wizard process, a state variable's value can be updated using the -wizard set_param command.

          +wizard set_param command.

          # check to see if a sandwich_id has been passed in by the wizard
           request set_param sandwich_id -datatype integer -optional
          @@ -88,7 +88,7 @@
             

          In the .adp file:

          <formtemplate id=@form_name@ style=wizard>
          -
        • Advancing the wizard with the wizard forward command. +
        • Advancing the wizard with the wizard forward command. The page the wizard forwards to depends on which wizard submit button was pressed (next, repeat, previous, finish):
          if { [wizard exists] } {
          Index: openacs-4/packages/acs-templating/www/doc/tagref/formerror.adp
          ===================================================================
          RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/formerror.adp,v
          diff -u -N -r1.3.2.3 -r1.3.2.4
          --- openacs-4/packages/acs-templating/www/doc/tagref/formerror.adp	1 Dec 2015 11:18:02 -0000	1.3.2.3
          +++ openacs-4/packages/acs-templating/www/doc/tagref/formerror.adp	22 Jun 2016 07:48:44 -0000	1.3.2.4
          @@ -8,7 +8,7 @@
            : Tag Reference
            : formerror
           

          Summary

          -

          The formerror tag is used to specify the presentation +

          The formerror tag is used to specify the presentation of a form validation error.

          Usage

          @@ -25,7 +25,7 @@
               </td>
             </tr>
             </table><br>
          -  <input type=submit value="Submit">
          +  <input type="submit" value="Submit">
             </formtemplate>
           

          Another example:

          @@ -44,31 +44,31 @@ </tr> </formerror> </table><br> - <input type=submit value="Submit"> + <input type="submit" value="Submit"> </formtemplate>

          This adds another table row which contains the error message for that widget in red color. If there is no error then the table row will not be added.

          Notes

            -
          • The contents of the formerror tag may appear on the +

          • The contents of the formerror tag may appear on the form when a submission is returned to the user for correction.

          • The contents of the tag may use the special variables -label and value to refer to the element label and +label and value to refer to the element label and submitted value.

          • You can use the variable \@formerror.element_id\@ to refer to the automatically generated error message within the formerror -tags.

          • The type attribute is optional and is used to +tags.

          • The type attribute is optional and is used to distinguish messages for specific types of validation errors. Each element may have any number of error messages associated with it, corresponding to each of the validation checks performed by the developer in the script associated with template.

          • If the contents of the tag are empty (<formerror></formerror>), the message specified by the developer in the script are inserted when appropriate. This is particularly useful for international sites, where locale-dependent -messages may be stored in the database.

          • If the type attribute is not specified and the +messages may be stored in the database.

          • If the type attribute is not specified and the contents of the tag are empty, all appropriate messages are -inserted (separated by <,br> tags).

          • See the formwidget and -formgroup tags for more +inserted (separated by <,br> tags).

          • See the formwidget and +formgroup tags for more information on writing the body of a dynamic form template.


          Index: openacs-4/packages/acs-templating/www/doc/tagref/formerror.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/formerror.html,v diff -u -N -r1.3 -r1.3.22.1 --- openacs-4/packages/acs-templating/www/doc/tagref/formerror.html 24 Feb 2004 11:16:32 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/tagref/formerror.html 22 Jun 2016 07:48:44 -0000 1.3.22.1 @@ -12,7 +12,7 @@

          Summary

          -

          The formerror tag is used to specify the presentation of a +

          The formerror tag is used to specify the presentation of a form validation error.

          Usage

          @@ -31,7 +31,7 @@ </td> </tr> </table><br> - <input type=submit value="Submit"> + <input type="submit" value="Submit"> </formtemplate>
        • @@ -52,7 +52,7 @@ </tr> </formerror> </table><br> - <input type=submit value="Submit"> + <input type="submit" value="Submit"> </formtemplate>
          @@ -64,20 +64,20 @@
            -
          • The contents of the formerror tag may appear on the +

          • The contents of the formerror tag may appear on the form when a submission is returned to the user for correction.

          • The contents of the tag may use the special variables - label and value to refer to the element + label and value to refer to the element label and submitted value.

          • You can use the variable @formerror.element_id@ to refer to the automatically generated error message within the formerror tags.

            -
          • The type attribute is optional and is used to +

          • The type attribute is optional and is used to distinguish messages for specific types of validation errors. Each element may have any number of error messages associated with it, corresponding to each of the validation checks performed by the @@ -89,12 +89,12 @@ particularly useful for international sites, where locale-dependent messages may be stored in the database.

            -
          • If the type attribute is not specified and +

          • If the type attribute is not specified and the contents of the tag are empty, all appropriate messages are inserted (separated by <,br> tags).

            -
          • See the formwidget and -formgroup tags for more information +

          • See the formwidget and +formgroup tags for more information on writing the body of a dynamic form template.

          Index: openacs-4/packages/acs-templating/www/doc/tagref/formgroup.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/formgroup.adp,v diff -u -N -r1.3.2.3 -r1.3.2.4 --- openacs-4/packages/acs-templating/www/doc/tagref/formgroup.adp 1 Dec 2015 11:18:02 -0000 1.3.2.3 +++ openacs-4/packages/acs-templating/www/doc/tagref/formgroup.adp 22 Jun 2016 07:48:44 -0000 1.3.2.4 @@ -8,7 +8,7 @@ : Tag Reference : Formgroup

          Summary

          -

          The formgroup tag is used to lay out a set of check +

          The formgroup tag is used to lay out a set of check boxes or radio buttons in a dynamic form template. All the check boxes or radio buttons in a group share the same name. A button group must be created as an element in the Tcl script associated @@ -21,30 +21,30 @@ <tr><td>\@formgroup.widget\@</td><td>\@formgroup.label\@</td></tr> </formgroup> </table><br> - <input type=submit value="Submit"> + <input type="submit" value="Submit"> </formtemplate>

          Notes

            -
          • The formgroup tag contains a template for formatting +

          • The formgroup tag contains a template for formatting each check box or radio button in the group. The tag makes a -special multirow data source named formgroup available in -the body of the tag. The formgroup data source includes -two columns. The first is widget, containing an HTML -input tag for one of the buttons in the group. The second -is label, containing a corresponding label for the -button.

          • The formgroup tag may emulate either the multiple or grid tags in repeating the template -section within the tag. By default it emulates the multiple tag. If the cols -attribute is specified, the formgroup tag will emulate the -grid tag.

          • +special multirow data source named formgroup available in +the body of the tag. The formgroup data source includes +two columns. The first is widget, containing an HTML +input tag for one of the buttons in the group. The second +is label, containing a corresponding label for the +button.

          • The formgroup tag may emulate either the multiple or grid tags in repeating the template +section within the tag. By default it emulates the multiple tag. If the cols +attribute is specified, the formgroup tag will emulate the +grid tag.

          • HTML attributes, including JavaScript event handlers, may be -specified as attributes to the formgroup tag. The system -will include all such attributes in the input tags of each +specified as attributes to the formgroup tag. The system +will include all such attributes in the input tags of each radio button or check box in the group.

             <formgroup id="services" onChange="validate();">
             
            -
          • See the formtemplate -and formwidget tags for more +

          • See the formtemplate +and formwidget tags for more information on writing the body of a dynamic form template.


          Index: openacs-4/packages/acs-templating/www/doc/tagref/formgroup.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/formgroup.html,v diff -u -N -r1.2 -r1.2.22.1 --- openacs-4/packages/acs-templating/www/doc/tagref/formgroup.html 24 Feb 2004 11:16:32 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/tagref/formgroup.html 22 Jun 2016 07:48:44 -0000 1.2.22.1 @@ -12,7 +12,7 @@

          Summary

          -

          The formgroup tag is used to lay out a set of check boxes +

          The formgroup tag is used to lay out a set of check boxes or radio buttons in a dynamic form template. All the check boxes or radio buttons in a group share the same name. A button group must be created as an element in the Tcl script associated with the @@ -27,41 +27,41 @@ <tr><td>@formgroup.widget@</td><td>@formgroup.label@</td></tr> </formgroup> </table><br> - <input type=submit value="Submit"> + <input type="submit" value="Submit"> </formtemplate>

          Notes

            -
          • The formgroup tag contains a +

          • The formgroup tag contains a template for formatting each check box or radio button in the group. The tag makes a special multirow data source named - formgroup available in the body of the tag. The - formgroup data source includes two columns. The first - is widget, containing an HTML input tag for - one of the buttons in the group. The second is label, + formgroup available in the body of the tag. The + formgroup data source includes two columns. The first + is widget, containing an HTML input tag for + one of the buttons in the group. The second is label, containing a corresponding label for the button.

            -
          • The formgroup tag may emulate either the multiple or grid tags in repeating the +

          • The formgroup tag may emulate either the multiple or grid tags in repeating the template section within the tag. By default it emulates the multiple tag. If the - cols attribute is specified, the formgroup - tag will emulate the grid + href="multiple.html">multiple tag. If the + cols attribute is specified, the formgroup + tag will emulate the grid tag.

          • HTML attributes, including JavaScript event handlers, may be - specified as attributes to the formgroup tag. The - system will include all such attributes in the input + specified as attributes to the formgroup tag. The + system will include all such attributes in the input tags of each radio button or check box in the group.

            <formgroup id="services" onChange="validate();">
            -
          • See the formtemplate and -formwidget tags for more information +

          • See the formtemplate and +formwidget tags for more information on writing the body of a dynamic form template.

          Index: openacs-4/packages/acs-templating/www/doc/tagref/formtemplate.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/formtemplate.adp,v diff -u -N -r1.3.2.3 -r1.3.2.4 --- openacs-4/packages/acs-templating/www/doc/tagref/formtemplate.adp 1 Dec 2015 11:18:02 -0000 1.3.2.3 +++ openacs-4/packages/acs-templating/www/doc/tagref/formtemplate.adp 22 Jun 2016 07:48:44 -0000 1.3.2.4 @@ -8,7 +8,7 @@ : Tag Reference : Formtemplate

          Summary

          -

          The formtemplate tag is used to embed a dynamic form in +

          The formtemplate tag is used to embed a dynamic form in a template. The elements of the form must be created in the Tcl script associated with the template.

          Usage

          @@ -22,35 +22,35 @@ <td>Last Name</td><td><formwidget id="last_name"></td> </tr> </table><br> - <input type=submit value="Submit"> + <input type="submit" value="Submit"> </formtemplate>

          Notes

            -
          • The formtemplate tag takes the place of the -form tag in a static HTML form. Explicit form tags in the +

          • The formtemplate tag takes the place of the +form tag in a static HTML form. Explicit form tags in the template should not be used to enclose dynamic forms.

          • -

            If the body of the formtemplate is empty, the +

            If the body of the formtemplate is empty, the templating system will generate a form automatically based on the list of elements created in the Tcl script associated with the template:

             <formtemplate id="add_user" style="standard"></formtemplate>
            -

            The style attribute is optional. It may be used to -select a style template from /ats/templates/forms for +

            The style attribute is optional. It may be used to +select a style template from /ats/templates/forms for determining the layout of the auto-generated form. The default style is defined in the DefaultFormStyle parameter on the -acs-templating package, and is by default set to standard, +acs-templating package, and is by default set to standard, which is included in the distribution.

          • HTML attributes, including JavaScript event handlers, may be -specified as attributes to the formtemplate tag. The -system will include all such attributes in the form tag of +specified as attributes to the formtemplate tag. The +system will include all such attributes in the form tag of the rendered HTML form.

             <formtemplate id="add_user" onSubmit="validate();">
             

            This will work for both autogenerated and explicitly formatted forms.

            -
          • See the formwidget and -formgroup tags for more +

          • See the formwidget and +formgroup tags for more information on writing the body of a dynamic form template.


          Index: openacs-4/packages/acs-templating/www/doc/tagref/formtemplate.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/formtemplate.html,v diff -u -N -r1.3 -r1.3.22.1 --- openacs-4/packages/acs-templating/www/doc/tagref/formtemplate.html 24 Feb 2004 11:16:32 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/tagref/formtemplate.html 22 Jun 2016 07:48:44 -0000 1.3.22.1 @@ -12,7 +12,7 @@

          Summary

          -

          The formtemplate tag is used to embed a dynamic form in +

          The formtemplate tag is used to embed a dynamic form in a template. The elements of the form must be created in the Tcl script associated with the template.

          @@ -28,43 +28,43 @@ <td>Last Name</td><td><formwidget id="last_name"></td> </tr> </table><br> - <input type=submit value="Submit"> + <input type="submit" value="Submit"> </formtemplate>

          Notes

            -
          • The formtemplate tag takes the place of the -form tag in a static HTML form. Explicit form tags in the +

          • The formtemplate tag takes the place of the +form tag in a static HTML form. Explicit form tags in the template should not be used to enclose dynamic forms.

            -
          • If the body of the formtemplate is empty, the +

          • If the body of the formtemplate is empty, the templating system will generate a form automatically based on the list of elements created in the Tcl script associated with the template:

            <formtemplate id="add_user" style="standard"></formtemplate>
            -

            The style attribute is optional. It may be used to select -a style template from /ats/templates/forms for determining +

            The style attribute is optional. It may be used to select +a style template from /ats/templates/forms for determining the layout of the auto-generated form. The default style is defined in the DefaultFormStyle parameter on the acs-templating package, -and is by default set to standard, which is included in the +and is by default set to standard, which is included in the distribution.

          • HTML attributes, including JavaScript event handlers, may be -specified as attributes to the formtemplate tag. The system -will include all such attributes in the form tag of the +specified as attributes to the formtemplate tag. The system +will include all such attributes in the form tag of the rendered HTML form.

            <formtemplate id="add_user" onSubmit="validate();">

            This will work for both autogenerated and explicitly formatted forms.

            -
          • See the formwidget and -formgroup tags for more information +

          • See the formwidget and +formgroup tags for more information on writing the body of a dynamic form template.

          Index: openacs-4/packages/acs-templating/www/doc/tagref/formwidget.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/formwidget.adp,v diff -u -N -r1.3.2.4 -r1.3.2.5 --- openacs-4/packages/acs-templating/www/doc/tagref/formwidget.adp 9 Jun 2016 13:03:12 -0000 1.3.2.4 +++ openacs-4/packages/acs-templating/www/doc/tagref/formwidget.adp 22 Jun 2016 07:48:44 -0000 1.3.2.5 @@ -8,7 +8,7 @@ : Tag Reference : Formwidget

          Summary

          -

          The formwidget tag is used to position a form element +

          The formwidget tag is used to position a form element in a dynamic form template. The element itself must be created in the Tcl script associated with the template.

          Usage

          @@ -22,26 +22,26 @@ <td>First Name</td><td><formwidget id="first_name"></td> </tr> </table><br> - <input type=submit value="Submit"> + <input type="submit" value="Submit"> </formtemplate>

          Notes

            -
          • The formwidget tag takes the place of input -and select tags in static HTML forms. The system +

          • The formwidget tag takes the place of input +and select tags in static HTML forms. The system substitutes these tags with the appropriate HTML tags, complete with their proper values, options and other attributes, while rendering the template. Explicit form tags in the template may be used in special circumstances, but should be avoided wherever possible.

          • HTML attributes, including JavaScript event handlers, may be -specified as attributes to the formwidget tag. The system -will include all such attributes in the input or -select tag of the rendered HTML form.

            +specified as attributes to the formwidget tag. The system
            +will include all such attributes in the input or
            +select tag of the rendered HTML form.

             <formwidget id="cc_number" onChange="validate();">
             
            -
          • See the formtemplate -and formgroup tags for more +

          • See the formtemplate +and formgroup tags for more information on writing the body of a dynamic form template.


          Index: openacs-4/packages/acs-templating/www/doc/tagref/formwidget.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/formwidget.html,v diff -u -N -r1.2 -r1.2.22.1 --- openacs-4/packages/acs-templating/www/doc/tagref/formwidget.html 24 Feb 2004 11:16:32 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/tagref/formwidget.html 22 Jun 2016 07:48:44 -0000 1.2.22.1 @@ -12,7 +12,7 @@

          Summary

          -

          The formwidget tag is used to position a form element in a +

          The formwidget tag is used to position a form element in a dynamic form template. The element itself must be created in the Tcl script associated with the template.

          @@ -22,36 +22,36 @@ <formtemplate id="add_user"> <table> <tr> - <td>First Name</td><td><formwidget id="first_name"></td> + <td>First Name</td><td><formwidget id="first_name"></td> </tr> <tr> - <td>First Name</td><td><formwidget id="first_name"></td> + <td>First Name</td><td><formwidget id="first_name"></td> </tr> </table><br> - <input type=submit value="Submit"> + <input type="submit" value="Submit"> </formtemplate>

          Notes

            -
          • The formwidget tag takes the place of input -and select tags in static HTML forms. The system substitutes +

          • The formwidget tag takes the place of input +and select tags in static HTML forms. The system substitutes these tags with the appropriate HTML tags, complete with their proper values, options and other attributes, while rendering the template. Explicit form tags in the template may be used in special circumstances, but should be avoided wherever possible.

          • HTML attributes, including JavaScript event handlers, may be -specified as attributes to the formwidget tag. The system -will include all such attributes in the input or -select tag of the rendered HTML form.

            +specified as attributes to the formwidget tag. The system +will include all such attributes in the input or +select tag of the rendered HTML form.

            <formwidget id="cc_number" onChange="validate();">
            -
          • See the formtemplate and -formgroup tags for more information +

          • See the formtemplate and +formgroup tags for more information on writing the body of a dynamic form template.

          Index: openacs-4/packages/acs-templating/www/doc/tagref/grid.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/grid.adp,v diff -u -N -r1.3.2.3 -r1.3.2.4 --- openacs-4/packages/acs-templating/www/doc/tagref/grid.adp 1 Dec 2015 11:18:02 -0000 1.3.2.3 +++ openacs-4/packages/acs-templating/www/doc/tagref/grid.adp 22 Jun 2016 07:48:44 -0000 1.3.2.4 @@ -8,7 +8,7 @@ : Tag Reference : Grid

          Summary

          -

          The grid tag is used to output each row of a multirow +

          The grid tag is used to output each row of a multirow datasource as a cell of an n column grid.

          Usage

          @@ -64,17 +64,17 @@
           
        • -

          The \@datasource.row\@ variable can be used to band grid +

          The \@datasource.row\@ variable can be used to band grid rows:

             <if \@datasource.col\@ eq 1 and \@datasource.row\@ odd>
          -    <tr bgcolor=#eeeeee>
          +    <tr bgcolor="#eeeeee">
             </if>
           
             <if \@datasource.col\@ eq 1 and \@datasource.row\@ even>
          -    <tr bgcolor=#ffffff>
          +    <tr bgcolor="#ffffff">
             </if>
          -

          Note that this is different from the multiple tag, where the -\@datasource.rownum\@ is used for this effect.

          +

          Note that this is different from the multiple tag, where the +\@datasource.rownum\@ is used for this effect.


        • Index: openacs-4/packages/acs-templating/www/doc/tagref/grid.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/grid.html,v diff -u -N -r1.2 -r1.2.22.1 --- openacs-4/packages/acs-templating/www/doc/tagref/grid.html 24 Feb 2004 11:16:32 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/tagref/grid.html 22 Jun 2016 07:48:44 -0000 1.2.22.1 @@ -12,7 +12,7 @@

          Summary

          -

          The grid tag is used to output each row of a multirow +

          The grid tag is used to output each row of a multirow datasource as a cell of an n column grid.

          Usage

          @@ -63,30 +63,30 @@ order:

          - +
          1 5 9
          2 6 10
          3 7  
          4 8  

          -
        • The @datasource.row@ variable can be used to band grid +

        • The @datasource.row@ variable can be used to band grid rows:

             <if @datasource.col@ eq 1 and @datasource.row@ odd>
          -    <tr bgcolor=#eeeeee>
          +    <tr bgcolor="#eeeeee">
             </if>
           
             <if @datasource.col@ eq 1 and @datasource.row@ even>
          -    <tr bgcolor=#ffffff>
          +    <tr bgcolor="#ffffff">
             </if>
           

          Note that this is different from the multiple tag, where the -@datasource.rownum@ is used for this effect.

          +href="multiple.html">multiple tag, where the +@datasource.rownum@ is used for this effect.


          Index: openacs-4/packages/acs-templating/www/doc/tagref/group.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/group.adp,v diff -u -N -r1.2.2.3 -r1.2.2.4 --- openacs-4/packages/acs-templating/www/doc/tagref/group.adp 9 Jun 2016 13:03:12 -0000 1.2.2.3 +++ openacs-4/packages/acs-templating/www/doc/tagref/group.adp 22 Jun 2016 07:48:44 -0000 1.2.2.4 @@ -8,23 +8,23 @@ : Tag Reference : Group

          Summary

          -

          The group tag is used only within the body of a +

          The group tag is used only within the body of a multiple tag to provide additional formatting control between subsets of a multirow data source. The tag takes a column name from the enclosing multiple tag as its only attribute. It repeats a template section as long as the value of the column does not change from row to row.

          -

          The group tag also sets two additional values in your +

          The group tag also sets two additional values in your multirow:

          • -groupnum is the rownum within the innermost group tag, +groupnum is the rownum within the innermost group tag, starting from 1, 2, 3, etc.
          • -groupnum_last_p is a boolean saying whether this is +groupnum_last_p is a boolean saying whether this is the last row inside the current group tag, before the value of -column changes. Note, however, that this -only works inside the inner-mostgroup if -you have multiple group tags nested within each +column changes. Note, however, that this +only works inside the inner-mostgroup if +you have multiple group tags nested within each other.

          Usage

          @@ -64,20 +64,20 @@

          [Note: Carsten added this feature during the Berlin Hackaton 2004-02-14]

          -

          The delimiter attribute will add a string after each +

          The delimiter attribute will add a string after each row except the last row in the group:

             <group delimiter=" | ">
             ...
           

          This attribute will cause the rows within the group to appear to be sepparated by vertical bars. This is much more convenient than -using the <groupnum_last_p> tags to check whether we +using the <groupnum_last_p> tags to check whether we are on the last row.

          Notes

          • -Group tags may be nested to perform even more complex +Group tags may be nested to perform even more complex formatting.

          • Be careful when nesting several group tags. The group tag works very narrowly - it only looks at the column you provide it with and so long as that column doesn't change, it keeps looping. E.g. if Index: openacs-4/packages/acs-templating/www/doc/tagref/group.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/group.html,v diff -u -N -r1.5 -r1.5.22.1 --- openacs-4/packages/acs-templating/www/doc/tagref/group.html 3 Mar 2004 17:40:04 -0000 1.5 +++ openacs-4/packages/acs-templating/www/doc/tagref/group.html 22 Jun 2016 07:48:44 -0000 1.5.22.1 @@ -12,26 +12,26 @@

            Summary

            -

            The group tag is used only within the body of a The group tag is used only within the body of a multiple tag to provide additional formatting control between subsets of a multirow data source. The tag takes a column name from the enclosing multiple tag as its only attribute. It repeats a template section as long as the value of the column does not change from row to row.

            -

            The group tag also sets two additional values in your +

            The group tag also sets two additional values in your multirow:

              -
            • groupnum is the rownum within the innermost group tag, +
            • groupnum is the rownum within the innermost group tag, starting from 1, 2, 3, etc.
            • -
            • groupnum_last_p is a boolean saying whether this is +
            • groupnum_last_p is a boolean saying whether this is the last row inside the current group tag, before the value of - column changes. Note, however, that this only - works inside the inner-most group if you have - multiple group tags nested within each other.
            • + column changes. Note, however, that this only + works inside the inner-most group if you have + multiple group tags nested within each other.
            @@ -71,7 +71,7 @@ </table>

            [Note: Carsten added this feature during the Berlin Hackaton 2004-02-14] -

            The delimiter attribute will add a string after each row except +

            The delimiter attribute will add a string after each row except the last row in the group:

            @@ -83,15 +83,15 @@

            This attribute will cause the rows within the group to appear to be sepparated by vertical bars. -This is much more convenient than using the <groupnum_last_p> +This is much more convenient than using the <groupnum_last_p> tags to check whether we are on the last row.

            Notes

              -
            • Group tags may be nested to perform even more complex +

            • Group tags may be nested to perform even more complex formatting.

            • Be careful when nesting several group tags. The group tag works Index: openacs-4/packages/acs-templating/www/doc/tagref/if.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/if.adp,v diff -u -N -r1.3.2.4 -r1.3.2.5 --- openacs-4/packages/acs-templating/www/doc/tagref/if.adp 9 Jun 2016 13:03:12 -0000 1.3.2.4 +++ openacs-4/packages/acs-templating/www/doc/tagref/if.adp 22 Jun 2016 07:48:44 -0000 1.3.2.5 @@ -8,7 +8,7 @@ : Tag Reference : If

              Summary

              -

              The if tag is used to output a template section only +

              The if tag is used to output a template section only when certain conditions are met.

              Usage Examples

              @@ -111,42 +111,42 @@
               

              Notes

              • Any legal variables that may be referenced in the template may -also be used in if statements. Words not surrounded with -the commerical at sign (\@) are interpreted literally.

              • +also be used in if statements. Words not surrounded with +the commerical at sign (\@) are interpreted literally.

              • Phrases with spaces in them must be enclosed in quotes to be grouped correctly:

                   <if \@datasource.variable\@ eq "blue sky">
                -    <td bgcolor=#0000ff>
                +    <td bgcolor="#0000ff">
                   </if>
                 
              • -

                The elseif tag may be used following an if +

                The elseif tag may be used following an if block to specify an alternate conditional template section.

                   <if \@datasource.variable\@ eq "blue">
                -    <td bgcolor=#0000ff>
                +    <td bgcolor="#0000ff">
                   </if>
                   <elseif \@datasource.variable\@ eq "red">
                     <td bgcolor=red>
                   </elseif>
                   <else>
                -    <td bgcolor=#ffffff>
                +    <td bgcolor="#ffffff">
                   </else>
                 
              • -

                The else tag may be used following an if block +

                The else tag may be used following an if block to specify an alternate template section when a condition is not true:

                   <if \@datasource.variable\@ eq "blue">
                -    <td bgcolor=#0000ff>
                +    <td bgcolor="#0000ff">
                   </if>
                   <else>
                -    <td bgcolor=#ffffff>
                +    <td bgcolor="#ffffff">
                   </else>
                 
              • Compound expressions can be created by combining terms with the -and and or keywords, as illustrated above. Any +and and or keywords, as illustrated above. Any number of statements may be connected in this fashion. There is no -way to group statements to change the order of evaluation.

              • When a variable is tested using the nil operator, it +way to group statements to change the order of evaluation.

              • When a variable is tested using the nil operator, it will return true if the variable is undefined or if the value of the variable is an empty string.

              Index: openacs-4/packages/acs-templating/www/doc/tagref/if.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/if.html,v diff -u -N -r1.3 -r1.3.22.1 --- openacs-4/packages/acs-templating/www/doc/tagref/if.html 24 Feb 2004 11:16:32 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/tagref/if.html 22 Jun 2016 07:48:44 -0000 1.3.22.1 @@ -12,7 +12,7 @@

              Summary

              -

              The if tag is used to output a template section only when +

              The if tag is used to output a template section only when certain conditions are met.

              Usage Examples

              @@ -47,46 +47,46 @@

              Expression Syntax

              The condition of the <if> tag is built from terms of the form
              - x0 [not] op + x0 [not] op x1 x2 ...
              - The operator op determines the number operands + The operator op determines the number operands (x0, ... xn-1).

              The following operators are available:

              • binary
                • - x0 gt  + x0 gt  x1
                • - x0 ge  + x0 ge  x1
                • - x0 lt  + x0 lt  x1
                • - x0 le  + x0 le  x1
                • - x0 eq  + x0 eq  x1
                • - x0 ne  + x0 ne  x1
              • n-ary
                • - x0 in  + x0 in  x1 x2 x3 ...
                • @@ -95,87 +95,87 @@
                • ternary
                  • - x0 between  + x0 between  x1 x2
                • unary
                  • - x0 nil + x0 nil
                  • - x0 defined + x0 defined
                  • - x0 odd + x0 odd
                  • - x0 even + x0 even
                  • - x0 true + x0 true
                  • - x0 false + x0 false

                Any of these operators can be prefixed with - not to invert the outcome. + not to invert the outcome.

                Notes

                • Any legal variables that may be referenced in the template may -also be used in if statements. Words not surrounded with -the commerical at sign (@) are interpreted literally.

                  +also be used in if statements. Words not surrounded with +the commerical at sign (@) are interpreted literally.

                • Phrases with spaces in them must be enclosed in quotes to be grouped correctly:

                     <if @datasource.variable@ eq "blue sky">
                  -    <td bgcolor=#0000ff>
                  +    <td bgcolor="#0000ff">
                     </if>
                  -
                • The elseif tag may be used following an if block +

                • The elseif tag may be used following an if block to specify an alternate conditional template section.

                     <if @datasource.variable@ eq "blue">
                  -    <td bgcolor=#0000ff>
                  +    <td bgcolor="#0000ff">
                     </if>
                     <elseif @datasource.variable@ eq "red">
                       <td bgcolor=red>
                     </elseif>
                     <else>
                  -    <td bgcolor=#ffffff>
                  +    <td bgcolor="#ffffff">
                     </else>
                  -
                • The else tag may be used following an if block +

                • The else tag may be used following an if block to specify an alternate template section when a condition is not true:

                     <if @datasource.variable@ eq "blue">
                  -    <td bgcolor=#0000ff>
                  +    <td bgcolor="#0000ff">
                     </if>
                     <else>
                  -    <td bgcolor=#ffffff>
                  +    <td bgcolor="#ffffff">
                     </else>
                • Compound expressions can be created by combining terms with the -and and or keywords, as illustrated above. Any +and and or keywords, as illustrated above. Any number of statements may be connected in this fashion. There is no way to group statements to change the order of evaluation.

                  -
                • When a variable is tested using the nil operator, it will +

                • When a variable is tested using the nil operator, it will return true if the variable is undefined or if the value of the variable is an empty string.

                  Index: openacs-4/packages/acs-templating/www/doc/tagref/include-optional.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/include-optional.adp,v diff -u -N -r1.2.2.2 -r1.2.2.3 --- openacs-4/packages/acs-templating/www/doc/tagref/include-optional.adp 1 Dec 2015 11:18:02 -0000 1.2.2.2 +++ openacs-4/packages/acs-templating/www/doc/tagref/include-optional.adp 22 Jun 2016 07:48:44 -0000 1.2.2.3 @@ -8,7 +8,7 @@ : Tag Reference : include-optional

                  Summary

                  -

                  The include-optional tag is used to include another +

                  The include-optional tag is used to include another template in the current template, but make some other chunk dependent on whether or not the included template returned something.

                  @@ -37,7 +37,7 @@

              Notes

              • The output of the included template will be put where the -<include-output> appears.
              +<include-output> appears.

            Tag added by: Lars Pinds (lars\@collaboraid.net)
            Documentation added from sources on Nov 2002, Roberto Index: openacs-4/packages/acs-templating/www/doc/tagref/include-optional.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/include-optional.html,v diff -u -N -r1.3 -r1.3.22.1 --- openacs-4/packages/acs-templating/www/doc/tagref/include-optional.html 24 Feb 2004 11:16:32 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/tagref/include-optional.html 22 Jun 2016 07:48:44 -0000 1.3.22.1 @@ -13,7 +13,7 @@

            Summary

            -The include-optional tag is used to include another template +The include-optional tag is used to include another template in the current template, but make some other chunk dependent on whether or not the included template returned something.

            @@ -50,7 +50,7 @@
            • The output of the included template will be put where the - <include-output> appears. + <include-output> appears.
            Index: openacs-4/packages/acs-templating/www/doc/tagref/include.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/include.adp,v diff -u -N -r1.2.2.3 -r1.2.2.4 --- openacs-4/packages/acs-templating/www/doc/tagref/include.adp 9 Jun 2016 13:03:12 -0000 1.2.2.3 +++ openacs-4/packages/acs-templating/www/doc/tagref/include.adp 22 Jun 2016 07:48:44 -0000 1.2.2.4 @@ -8,7 +8,7 @@ : Tag Reference : Include

            Summary

            -

            The include tag is used to include a dynamic +

            The include tag is used to include a dynamic subtemplate into the current template. Subtemplates are evaluated in the same fashion as any other dynamic template; the developer may associate data sources and other properties to them.

            @@ -24,10 +24,10 @@

            Notes

            • Arguments may be passed to the subtemplate by specifying -additional attributes to the include tag. All attributes -except for src are assumed to be arguments and are set as +additional attributes to the include tag. All attributes +except for src are assumed to be arguments and are set as variables which the subtemplate may reference using the -var tag. To pass a dynamic variable to the subtemplate, +var tag. To pass a dynamic variable to the subtemplate, specify the variable name surrounded by at signs as the value:
               <include src="subtemplate" source_id="\@source_id\@" ...>
              @@ -49,17 +49,17 @@
               value this will affect the includer. When the datasource in the
               included page has the same name (&users="users"),
               you can use the shorthand &="users".
            • It is important to note that variables passed through -include become available to the .tcl and .adp files being +include become available to the .tcl and .adp files being include'd, but it does not make them settable through -ad_page_contract. +ad_page_contract.

              So if you'd like to have a template that will return a fragment of a page that you'd like to include in other pages, make sure its -.tcl component does not call ad_page_contract.

              If you'd like to include a full page (that is, one which calls -ad_page_contract) then instead of passing a parameter -through <include>, you could use rp_form_put +.tcl component does not call ad_page_contract.

              If you'd like to include a full page (that is, one which calls +ad_page_contract) then instead of passing a parameter +through <include>, you could use rp_form_put to add the variable to that page's form. For additional references, see how message-chunk is used throughout the forums package.

              -
            • If the src attribute begins with a slash, the path is +
            • If the src attribute begins with a slash, the path is assumed to be relative to the server root, the parent directory of the tcl library. If not, the path is assumed to be relative to the current template, not the URL of the page Index: openacs-4/packages/acs-templating/www/doc/tagref/include.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/include.html,v diff -u -N -r1.5.2.1 -r1.5.2.2 --- openacs-4/packages/acs-templating/www/doc/tagref/include.html 25 Aug 2015 17:59:29 -0000 1.5.2.1 +++ openacs-4/packages/acs-templating/www/doc/tagref/include.html 22 Jun 2016 07:48:44 -0000 1.5.2.2 @@ -12,7 +12,7 @@

              Summary

              -

              The include tag is used to include a dynamic subtemplate +

              The include tag is used to include a dynamic subtemplate into the current template. Subtemplates are evaluated in the same fashion as any other dynamic template; the developer may associate data sources and other properties to them.

              @@ -29,10 +29,10 @@

              Notes

              • Arguments may be passed to the subtemplate by specifying - additional attributes to the include tag. All - attributes except for src are assumed to be arguments + additional attributes to the include tag. All + attributes except for src are assumed to be arguments and are set as variables which the subtemplate may reference - using the var tag. To pass a dynamic variable to the + using the var tag. To pass a dynamic variable to the subtemplate, specify the variable name surrounded by at signs as the value: @@ -59,28 +59,28 @@
              • - It is important to note that variables passed through include + It is important to note that variables passed through include become available to the .tcl and .adp files being include'd, but it - does not make them settable through ad_page_contract. + does not make them settable through ad_page_contract.

                So if you'd like to have a template that will return a fragment of a page that you'd like to include in other pages, make sure its .tcl - component does not call ad_page_contract. + component does not call ad_page_contract.

                If you'd like to include a full page (that is, one which calls - ad_page_contract) then instead of passing a parameter through - <include>, you could use - rp_form_put + ad_page_contract) then instead of passing a parameter through + <include>, you could use + rp_form_put to add the variable to that page's form. For additional references, see how message-chunk is used throughout the forums package.

              • - If the src attribute begins with a slash, the path is + If the src attribute begins with a slash, the path is assumed to be relative to the server root, the parent directory of the tcl library. If not, the path is assumed to be relative to the current template, not the URL of the page Index: openacs-4/packages/acs-templating/www/doc/tagref/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/index.adp,v diff -u -N -r1.2.2.8 -r1.2.2.9 --- openacs-4/packages/acs-templating/www/doc/tagref/index.adp 1 Dec 2015 11:18:02 -0000 1.2.2.8 +++ openacs-4/packages/acs-templating/www/doc/tagref/index.adp 22 Jun 2016 07:48:44 -0000 1.2.2.9 @@ -13,10 +13,10 @@ that are not possible with standard HTML:

                • Embed a dynamic variable in a template (variables).
                • Repeat a template section for each object in a dynamic list of -objects (multiple, -grid).
                • Output different template sections depending on the value of -one or more dynamic variables (if).
                • Provide a mechanism for building complete pages from multiple -component templates (include).
                • +objects (multiple, +grid).
                • Output different template sections depending on the value of +one or more dynamic variables (if).
                • Provide a mechanism for building complete pages from multiple +component templates (include).

                Available Tags

                  @@ -36,8 +36,8 @@ However, if a page layout depends on the presence or absence of whitespace between HTML tags for proper display, then special care must be taken with dynamic tags to avoid adding whitespace.

                  When placed on a line by themselves, tags that are containers -for template sections (grid, if, and -multiple) will cause newlines to be added to the page at +for template sections (grid, if, and +multiple) will cause newlines to be added to the page at the beginning and end of the section. This can be avoided by crowding the start and end tags like so:

                   <td><if %x% eq 5><img src="five.gif"></if>
                  Index: openacs-4/packages/acs-templating/www/doc/tagref/index.html
                  ===================================================================
                  RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/index.html,v
                  diff -u -N -r1.4 -r1.4.24.1
                  --- openacs-4/packages/acs-templating/www/doc/tagref/index.html	14 Jan 2003 01:54:55 -0000	1.4
                  +++ openacs-4/packages/acs-templating/www/doc/tagref/index.html	22 Jun 2016 07:48:44 -0000	1.4.24.1
                  @@ -26,14 +26,14 @@
                   	(variables).
                         
                • Repeat a template section for each object in a dynamic list of - objects (multiple, grid). + objects (multiple, grid).
                • Output different template sections depending on the value of one or - more dynamic variables (if). + more dynamic variables (if).
                • Provide a mechanism for building complete pages from multiple - component templates (include). + component templates (include).
                @@ -75,7 +75,7 @@ care must be taken with dynamic tags to avoid adding whitespace.

                When placed on a line by themselves, tags that are containers for - template sections (grid, if, and multiple) + template sections (grid, if, and multiple) will cause newlines to be added to the page at the beginning and end of the section. This can be avoided by crowding the start and end tags like so: Index: openacs-4/packages/acs-templating/www/doc/tagref/list.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/list.adp,v diff -u -N -r1.2.2.3 -r1.2.2.4 --- openacs-4/packages/acs-templating/www/doc/tagref/list.adp 9 Jun 2016 13:03:12 -0000 1.2.2.3 +++ openacs-4/packages/acs-templating/www/doc/tagref/list.adp 22 Jun 2016 07:48:44 -0000 1.2.2.4 @@ -8,7 +8,7 @@ : Tag Reference : List

                Summary

                -

                The list tag is used to repeat a template section for +

                The list tag is used to repeat a template section for each item in a list data source.

                Usage

                @@ -25,10 +25,10 @@
                 

                Notes

                  -
                • The special variable datasource:rownum has the +

                • The special variable datasource:rownum has the same meaning as the special column -datasource.rownum in the body of a -multiple tag.

                • The special variable datasource:rowcount has the same +datasource.rownum in the body of a +multiple tag.

                • The special variable datasource:rowcount has the same meaning in the list context as it does for multirow data sources.

                Index: openacs-4/packages/acs-templating/www/doc/tagref/list.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/list.html,v diff -u -N -r1.2 -r1.2.22.1 --- openacs-4/packages/acs-templating/www/doc/tagref/list.html 24 Feb 2004 11:16:32 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/tagref/list.html 22 Jun 2016 07:48:44 -0000 1.2.22.1 @@ -12,7 +12,7 @@

                Summary

                -

                The list tag is used to repeat a template section +

                The list tag is used to repeat a template section for each item in a list data source.

                Usage

                @@ -33,11 +33,11 @@
                • - The special variable datasource:rownum has the same - meaning as the special column datasource.rownum in the - body of a multiple tag.

                  + The special variable datasource:rownum has the same + meaning as the special column datasource.rownum in the + body of a multiple tag.

                  -
                • The special variable datasource:rowcount has the same +

                • The special variable datasource:rowcount has the same meaning in the list context as it does for multirow data sources.

                Index: openacs-4/packages/acs-templating/www/doc/tagref/master.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/master.adp,v diff -u -N -r1.2.2.2 -r1.2.2.3 --- openacs-4/packages/acs-templating/www/doc/tagref/master.adp 1 Dec 2015 11:18:03 -0000 1.2.2.2 +++ openacs-4/packages/acs-templating/www/doc/tagref/master.adp 22 Jun 2016 07:48:44 -0000 1.2.2.3 @@ -8,11 +8,11 @@ : Tag Reference : Master

                Summary

                -

                The master tag is used to specify the relative or +

                The master tag is used to specify the relative or absolute URL of another template to serve as a frame for the current template. The entire contents of the current template are inserted into the master template at a position designated by the -slave tag in the master +slave tag in the master template.

                Usage

                @@ -25,7 +25,7 @@
                 ...
                 

                Note(s)

                -
                • See property and slave for more information related to +

                  • See property and slave for more information related to master templates.


                  templating\@arsdigita.com Index: openacs-4/packages/acs-templating/www/doc/tagref/master.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/master.html,v diff -u -N -r1.2 -r1.2.22.1 --- openacs-4/packages/acs-templating/www/doc/tagref/master.html 24 Feb 2004 11:16:32 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/tagref/master.html 22 Jun 2016 07:48:44 -0000 1.2.22.1 @@ -12,11 +12,11 @@

                  Summary

                  -

                  The master tag is used to specify the relative or absolute +

                  The master tag is used to specify the relative or absolute URL of another template to serve as a frame for the current template. The entire contents of the current template are inserted into the master template at a position designated by the slave tag in the master template.

                  +href="slave.html">slave tag in the master template.

                  Usage

                  @@ -32,8 +32,8 @@

                  Note(s)

                    -
                  • See property and slave for more information related to +

                  • See property and slave for more information related to master templates.

                  Index: openacs-4/packages/acs-templating/www/doc/tagref/multiple.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/multiple.adp,v diff -u -N -r1.3.2.3 -r1.3.2.4 --- openacs-4/packages/acs-templating/www/doc/tagref/multiple.adp 1 Dec 2015 11:18:03 -0000 1.3.2.3 +++ openacs-4/packages/acs-templating/www/doc/tagref/multiple.adp 22 Jun 2016 07:48:44 -0000 1.3.2.4 @@ -8,7 +8,7 @@ : Tag Reference : Multiple

                  Summary

                  -

                  The multiple tag is used to repeat a template section +

                  The multiple tag is used to repeat a template section for each row of a multirow data source. Column variables are reset with each repetition to the values of the next row of the data source.

                  @@ -44,50 +44,50 @@
                  
                   

                  Notes

                    -
                  • The special variable datasource:rowcount may be used to +

                  • The special variable datasource:rowcount may be used to check for no rows in a data source (or any other special condition related to the number of rows in the data source).

                  • -

                    The special column datasource.rownum is set implicitly +

                    The special column datasource.rownum is set implicitly for each repetition and can be used in conjunction with the -if tag to do row banding:

                    +if tag to do row banding:

                       <multiple>
                     
                       <if \@datasource.rownum\@ odd>
                    -    <tr bgcolor=#eeeeee>
                    +    <tr bgcolor="#eeeeee">
                       </if>
                     
                       <if \@datasource.rownum\@ even>
                    -    <tr bgcolor=#ffffff>
                    +    <tr bgcolor="#ffffff">
                       </if>
                     
                       ...
                     
                  • -

                    The maxrows attribute may be used to limit the number +

                    The maxrows attribute may be used to limit the number of rows that are output from the data source:

                       <multiple maxrows="n">
                       ...
                     

                    This attribute will cause processing to stop after n rows have been output.

                  • -

                    The startrow attribute may be used to skip a number of +

                    The startrow attribute may be used to skip a number of rows at the beginning of the data source:

                       <multiple startrow="n">
                       ...
                     

                    This attribute will cause processing of the data source to begin at row n + 1.

                  • [Note: Carsten added this feature during the Berlin Hackaton -2004-02-14]

                    The delimiter attribute will add a string after each +2004-02-14]

                    The delimiter attribute will add a string after each row except the last row:

                       <multiple delimiter=" | ">
                       ...
                     

                    This attribute will cause the rows to appear to be sepparated by vertical bars. This is much more convenient than using the -<if> tags to check whether we are on the last +<if> tags to check whether we are on the last row.

                    -
                  • The startrow and maxrows attributes may be -used together to output any range from the data source.

                  • See the group tag for +

                  • The startrow and maxrows attributes may be +used together to output any range from the data source.

                  • See the group tag for formatting subsets of a multirow data source. In the current implementation, the <multiple> tag does not nest.

                  • Index: openacs-4/packages/acs-templating/www/doc/tagref/multiple.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/multiple.html,v diff -u -N -r1.3 -r1.3.22.1 --- openacs-4/packages/acs-templating/www/doc/tagref/multiple.html 24 Feb 2004 11:16:32 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/tagref/multiple.html 22 Jun 2016 07:48:44 -0000 1.3.22.1 @@ -12,7 +12,7 @@

                    Summary

                    -

                    The multiple tag is used to repeat a template section for +

                    The multiple tag is used to repeat a template section for each row of a multirow data source. Column variables are reset with each repetition to the values of the next row of the data source.

                    @@ -49,29 +49,29 @@

                    Notes

                      -
                    • The special variable datasource:rowcount may be used +

                    • The special variable datasource:rowcount may be used to check for no rows in a data source (or any other special condition related to the number of rows in the data source).

                      -
                    • The special column datasource.rownum is set implicitly +

                    • The special column datasource.rownum is set implicitly for each repetition and can be used in conjunction with the -if tag to do row banding: +if tag to do row banding:

                         <multiple>
                       
                         <if @datasource.rownum@ odd>
                      -    <tr bgcolor=#eeeeee>
                      +    <tr bgcolor="#eeeeee">
                         </if>
                       
                         <if @datasource.rownum@ even>
                      -    <tr bgcolor=#ffffff>
                      +    <tr bgcolor="#ffffff">
                         </if>
                       
                         ...
                       
                      -
                    • The maxrows attribute may be used to limit the number of rows +

                    • The maxrows attribute may be used to limit the number of rows that are output from the data source:

                      @@ -83,7 +83,7 @@

                      This attribute will cause processing to stop after n rows have been output.

                      -
                    • The startrow attribute may be used to skip a number of rows +

                    • The startrow attribute may be used to skip a number of rows at the beginning of the data source:

                      @@ -96,7 +96,7 @@ n + 1.

                    • [Note: Carsten added this feature during the Berlin Hackaton 2004-02-14] -

                      The delimiter attribute will add a string after each row except +

                      The delimiter attribute will add a string after each row except the last row:

                      @@ -106,13 +106,13 @@

                      This attribute will cause the rows to appear to be sepparated by -vertical bars. This is much more convenient than using the <if> +vertical bars. This is much more convenient than using the <if> tags to check whether we are on the last row.

                      -
                    • The startrow and maxrows attributes may be +

                    • The startrow and maxrows attributes may be used together to output any range from the data source.

                      -
                    • See the group tag for +

                    • See the group tag for formatting subsets of a multirow data source. In the current implementation, the <multiple> tag does not nest.

                      Index: openacs-4/packages/acs-templating/www/doc/tagref/noparse.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/noparse.adp,v diff -u -N -r1.2.2.1 -r1.2.2.2 --- openacs-4/packages/acs-templating/www/doc/tagref/noparse.adp 25 Aug 2015 18:02:17 -0000 1.2.2.1 +++ openacs-4/packages/acs-templating/www/doc/tagref/noparse.adp 22 Jun 2016 07:48:44 -0000 1.2.2.2 @@ -4,10 +4,10 @@

                      Noparse

                      Summary

                      -

                      The noparse tag is used to protect template tags that +

                      The noparse tag is used to protect template tags that should not be parsed. It is useful when templates are generated dynamically. For example, the templating system uses the -noparse tag in the "style" templates used for +noparse tag in the "style" templates used for auto-generated forms.

                      Usage

                      @@ -20,9 +20,9 @@
                       

                      Note(s)

                      • Normal variable references are interpreted, even within -a noparse tag. This is useful for generating templates +a noparse tag. This is useful for generating templates where the attributes of the output template (such as references to -component templates in an include tag or to form elements -in a formwidget tag) must be

                      +component templates in an include tag or to form elements +in a formwidget tag) must be


                    templating\@arsdigita.com Index: openacs-4/packages/acs-templating/www/doc/tagref/noparse.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/noparse.html,v diff -u -N -r1.1.1.1 -r1.1.1.1.30.1 --- openacs-4/packages/acs-templating/www/doc/tagref/noparse.html 13 Mar 2001 22:59:27 -0000 1.1.1.1 +++ openacs-4/packages/acs-templating/www/doc/tagref/noparse.html 22 Jun 2016 07:48:44 -0000 1.1.1.1.30.1 @@ -4,14 +4,14 @@

                    Noparse

                    - Templating System : Tag Reference + Templating System : Tag Reference

                    Summary

                    -

                    The noparse tag is used to protect template tags that +

                    The noparse tag is used to protect template tags that should not be parsed. It is useful when templates are generated -dynamically. For example, the templating system uses the noparse +dynamically. For example, the templating system uses the noparse tag in the "style" templates used for auto-generated forms.

                    Usage

                    @@ -29,10 +29,10 @@
                    • Normal variable references are interpreted, even - within a noparse tag. This is useful for generating + within a noparse tag. This is useful for generating templates where the attributes of the output template (such as - references to component templates in an include tag or - to form elements in a formwidget tag) must + references to component templates in an include tag or + to form elements in a formwidget tag) must be

                    Index: openacs-4/packages/acs-templating/www/doc/tagref/property.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/property.adp,v diff -u -N -r1.2.2.2 -r1.2.2.3 --- openacs-4/packages/acs-templating/www/doc/tagref/property.adp 1 Dec 2015 11:18:03 -0000 1.2.2.2 +++ openacs-4/packages/acs-templating/www/doc/tagref/property.adp 22 Jun 2016 07:48:44 -0000 1.2.2.3 @@ -8,7 +8,7 @@ : Tag Reference : Property

                    Summary

                    -

                    The property tag is used to set display attributes of +

                    The property tag is used to set display attributes of the page. The contents of the tag may be plain text, static HTML, or a dynamic template that references local data sources. Properties are most commonly used to pass information to a master @@ -24,7 +24,7 @@ ...

                    Note(s)

                    -
                    • See master and slave for more information about master +

                      • See master and slave for more information about master templates.


                      templating\@arsdigita.com Index: openacs-4/packages/acs-templating/www/doc/tagref/property.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/property.html,v diff -u -N -r1.2 -r1.2.22.1 --- openacs-4/packages/acs-templating/www/doc/tagref/property.html 24 Feb 2004 11:16:32 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/tagref/property.html 22 Jun 2016 07:48:44 -0000 1.2.22.1 @@ -12,7 +12,7 @@

                      Summary

                      -

                      The property tag is used to set display attributes of the +

                      The property tag is used to set display attributes of the page. The contents of the tag may be plain text, static HTML, or a dynamic template that references local data sources. Properties are most commonly used to pass information to a master template, such as a @@ -32,8 +32,8 @@

                      Note(s)

                        -
                      • See master and slave for more information about +

                      • See master and slave for more information about master templates.

                      Index: openacs-4/packages/acs-templating/www/doc/tagref/slave.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/slave.adp,v diff -u -N -r1.2.2.2 -r1.2.2.3 --- openacs-4/packages/acs-templating/www/doc/tagref/slave.adp 1 Dec 2015 11:18:03 -0000 1.2.2.2 +++ openacs-4/packages/acs-templating/www/doc/tagref/slave.adp 22 Jun 2016 07:48:44 -0000 1.2.2.3 @@ -8,7 +8,7 @@ : Tag Reference : Slave

                      Summary

                      -

                      The slave tag is used to mark the position in the +

                      The slave tag is used to mark the position in the master template where the body template should be inserted.

                      Usage

                      @@ -23,7 +23,7 @@
                       <hr>
                       

                      Note(s)

                      -
                      • See property and master for more information related to +

                        • See property and master for more information related to master templates.


                        templating\@arsdigita.com Index: openacs-4/packages/acs-templating/www/doc/tagref/slave.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/slave.html,v diff -u -N -r1.2 -r1.2.22.1 --- openacs-4/packages/acs-templating/www/doc/tagref/slave.html 24 Feb 2004 11:16:32 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/tagref/slave.html 22 Jun 2016 07:48:44 -0000 1.2.22.1 @@ -12,7 +12,7 @@

                        Summary

                        -

                        The slave tag is used to mark the position in the master +

                        The slave tag is used to mark the position in the master template where the body template should be inserted.

                        Usage

                        @@ -30,8 +30,8 @@

                        Note(s)

                        Index: openacs-4/packages/acs-templating/www/doc/tagref/switch.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/switch.adp,v diff -u -N -r1.3.2.3 -r1.3.2.4 --- openacs-4/packages/acs-templating/www/doc/tagref/switch.adp 1 Dec 2015 11:18:03 -0000 1.3.2.3 +++ openacs-4/packages/acs-templating/www/doc/tagref/switch.adp 22 Jun 2016 07:48:44 -0000 1.3.2.4 @@ -8,7 +8,7 @@ : Tag Reference : Switch

                        Summary

                        -

                        The switch tag is used to output one of n-sections when +

                        The switch tag is used to output one of n-sections when the switch variable matches one of the n-case statements. A default section can also be output if none of the n-case statements matches the switch variable.

                        @@ -62,12 +62,12 @@

                        Notes

                        • Any legal variables that may be referenced in the template may -also be used in switch statements.

                        • +also be used in switch statements.

                        • Phrases with spaces in them must be enclosed in double quotes and curly braces to be matched correctly. Failure to quote words with spaces correctly results in an error.

                             <case "{blue sky}">
                          -    <td bgcolor=#0000ff>
                          +    <td bgcolor="#0000ff">
                             </case>
                           
                        • Index: openacs-4/packages/acs-templating/www/doc/tagref/switch.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/switch.html,v diff -u -N -r1.2 -r1.2.22.1 --- openacs-4/packages/acs-templating/www/doc/tagref/switch.html 24 Feb 2004 11:16:32 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/tagref/switch.html 22 Jun 2016 07:48:44 -0000 1.2.22.1 @@ -12,7 +12,7 @@

                          Summary

                          -

                          The switch tag is used to output one of n-sections when the switch variable matches one of the n-case statements. A default section can also be output if none of the n-case statements matches the switch variable.

                          +

                          The switch tag is used to output one of n-sections when the switch variable matches one of the n-case statements. A default section can also be output if none of the n-case statements matches the switch variable.

                          Usage Examples

                          @@ -67,14 +67,14 @@
                           
                          • Any legal variables that may be referenced in the template may -also be used in switch statements. +also be used in switch statements.

                          • Phrases with spaces in them must be enclosed in double quotes and curly braces to be matched correctly. Failure to quote words with spaces correctly results in an error.

                               <case "{blue sky}">
                            -    <td bgcolor=#0000ff>
                            +    <td bgcolor="#0000ff">
                               </case>
                          Index: openacs-4/packages/acs-templating/www/doc/tagref/variable.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/variable.adp,v diff -u -N -r1.3.2.3 -r1.3.2.4 --- openacs-4/packages/acs-templating/www/doc/tagref/variable.adp 1 Dec 2015 11:18:03 -0000 1.3.2.3 +++ openacs-4/packages/acs-templating/www/doc/tagref/variable.adp 22 Jun 2016 07:48:44 -0000 1.3.2.4 @@ -12,13 +12,13 @@ data.

                          Usage

                          Simple variables are referenced by surrounding the variable name -with "commercial at" (\@) signs:

                          +with "commercial at" (\@) signs:

                           <!-- simple variables -->
                           <b><i>\@first_name\@ \@last_name\@</b></i>
                           

                          When processing this template, the server will look for -variables named first_name and last_name and +variables named first_name and last_name and substitute their values in the output:

                           <b><i>Fred Finkel</b></i>
                          Index: openacs-4/packages/acs-templating/www/doc/tagref/variable.html
                          ===================================================================
                          RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/variable.html,v
                          diff -u -N -r1.2 -r1.2.22.1
                          --- openacs-4/packages/acs-templating/www/doc/tagref/variable.html	24 Feb 2004 11:16:32 -0000	1.2
                          +++ openacs-4/packages/acs-templating/www/doc/tagref/variable.html	22 Jun 2016 07:48:44 -0000	1.2.22.1
                          @@ -17,13 +17,13 @@
                           

                          Usage

                          Simple variables are referenced by surrounding the variable name with -"commercial at" (@) signs:

                          +"commercial at" (@) signs:

                          <!-- simple variables -->
                           <b><i>@first_name@ @last_name@</b></i>

                          When processing this template, the server will look for variables -named first_name and last_name and substitute their +named first_name and last_name and substitute their values in the output:

                          <b><i>Fred Finkel</b></i>
                          Index: openacs-4/packages/acs-templating/www/doc/widgets/date.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/widgets/date.html,v diff -u -N -r1.1.1.1 -r1.1.1.1.30.1 --- openacs-4/packages/acs-templating/www/doc/widgets/date.html 13 Mar 2001 22:59:27 -0000 1.1.1.1 +++ openacs-4/packages/acs-templating/www/doc/widgets/date.html 22 Jun 2016 07:48:44 -0000 1.1.1.1.30.1 @@ -5,8 +5,8 @@

                          The Date Widget

                          -Templating System : - Widget Reference : Date +Templating System : + Widget Reference : Date

                          Overview

                          @@ -59,7 +59,7 @@

                          The fields which can be accessed or changed are summarized below:

                          - +
                          @@ -178,7 +178,7 @@ the element requires a -format switch, which specifies the format for the date, as follows:

                          -
                          FieldGet ?Set ? MeaningSample Value
                          +
                          @@ -217,7 +217,7 @@ specifiers separated by any of /\-.: or spaces. The valid format specifiers are as follows: -
                          OptionFormatMeaning
                          -format long
                          +
                          @@ -269,7 +269,7 @@

                          The -format switch is required, but the date widget also supports the following optional switches:

                          -
                          Format SpecifierFieldDefault Widget
                          +
                          Index: openacs-4/packages/acs-templating/www/doc/widgets/index.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/widgets/index.html,v diff -u -N -r1.1.1.1 -r1.1.1.1.30.1 --- openacs-4/packages/acs-templating/www/doc/widgets/index.html 13 Mar 2001 22:59:27 -0000 1.1.1.1 +++ openacs-4/packages/acs-templating/www/doc/widgets/index.html 22 Jun 2016 07:48:44 -0000 1.1.1.1.30.1 @@ -4,7 +4,7 @@

                          Slave

                          - Templating System : Widget Reference + Templating System : Widget Reference
                            Index: openacs-4/packages/acs-templating/www/doc/widgets/input.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/widgets/input.html,v diff -u -N -r1.2.2.1 -r1.2.2.2 --- openacs-4/packages/acs-templating/www/doc/widgets/input.html 20 Aug 2015 17:19:54 -0000 1.2.2.1 +++ openacs-4/packages/acs-templating/www/doc/widgets/input.html 22 Jun 2016 07:48:44 -0000 1.2.2.2 @@ -5,8 +5,8 @@

                            The Input Widgets

                            -Templating System : - Widget Reference : Input +Templating System : + Widget Reference : Input

                            Overview

                            @@ -38,7 +38,7 @@
                             template::element create test_form cost \
                            - -label "Car Cost" -datatype number -widget radio \
                            + -label "Car Cost" -datatype number -widget radio \
                              -options { {Cheap 1000} {Medium 50000} {Expensive 999999} }
                             
                            Index: openacs-4/packages/acs-templating/www/doc/widgets/select.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/widgets/select.html,v diff -u -N -r1.1.1.1 -r1.1.1.1.30.1 --- openacs-4/packages/acs-templating/www/doc/widgets/select.html 13 Mar 2001 22:59:27 -0000 1.1.1.1 +++ openacs-4/packages/acs-templating/www/doc/widgets/select.html 22 Jun 2016 07:48:44 -0000 1.1.1.1.30.1 @@ -5,8 +5,8 @@

                            The Input Widgets

                            -Templating System : - Widget Reference : Select +Templating System : + Widget Reference : Select

                            Overview

                            @@ -25,7 +25,7 @@
                             template::element create pizza_form topping \
                            - -label "Pizza Topping" -datatype keyword -widget select \
                            + -label "Pizza Topping" -datatype keyword -widget select \
                              -options { 
                                 {Pepperoni pepperoni} 
                                 {Sausage sausage} 
                            @@ -48,7 +48,7 @@
                             template::element create pizza_form topping \
                              -label "Pizza Topping" -datatype keyword -widget select \
                              -options { 
                            -    {{No Topping} {}}
                            +    {{No Topping} {}}
                                 {Pepperoni pepperoni} 
                                 {Sausage sausage} 
                                 {{Canadian Bacon} cbacon} 
                            Index: openacs-4/packages/acs-templating/www/doc/widgets/table.html
                            ===================================================================
                            RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/widgets/table.html,v
                            diff -u -N -r1.1.1.1 -r1.1.1.1.30.1
                            --- openacs-4/packages/acs-templating/www/doc/widgets/table.html	13 Mar 2001 22:59:27 -0000	1.1.1.1
                            +++ openacs-4/packages/acs-templating/www/doc/widgets/table.html	22 Jun 2016 07:48:44 -0000	1.1.1.1.30.1
                            @@ -5,8 +5,8 @@
                             
                               
                             

                            Table Widget

                            -Templating System : - Widget Reference : Table +Templating System : + Widget Reference : Table

                            Overview

                            Index: openacs-4/packages/acs-templating/www/resources/htmlarea/index.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/htmlarea/index.html,v diff -u -N -r1.3 -r1.3.12.1 --- openacs-4/packages/acs-templating/www/resources/htmlarea/index.html 13 Aug 2007 06:12:48 -0000 1.3 +++ openacs-4/packages/acs-templating/www/resources/htmlarea/index.html 22 Jun 2016 07:48:44 -0000 1.3.12.1 @@ -1,190 +1,190 @@ - - - - HTMLArea -- the free, customizable online editor - - - - - -
                            -
                          SwitchMeaningExample
                          - - - - - - - - - - - -
                          Version:3.0
                          Release:RC3 (release notes)
                          Compiled at:Jan , 2005 [23:43] GMT
                          SourceForge page:http://sf.net/projects/itools-htmlarea/
                          - -

                          HTMLArea -- the free
                          customizable online editor

                          - -

                          - HTMLArea is a free, customizable online editor. It works inside your - browser. It uses a non-standard feature implemented in Internet - Explorer 5.5 or better for Windows and Mozilla 1.3 or better (any - platform), therefore it will only work in one of these browsers. -

                          - -

                          - HTMLArea is copyright InteractiveTools.com and Dynarch.com and it is - released under a BSD-style license. HTMLArea is created and developed - upto version 2.03 by InteractiveTools.com. Version 3.0 developed by - Mihai Bazon for - InteractiveTools. It contains code sponsored by third-party companies as well. - Please see our About Box for details about who sponsored what plugins. -

                          - -

                          Online demos

                          - - - -

                          Installation

                          - -

                          - Installation is (or should be) easy. You need to unpack the ZIP file - in a directory accessible through your webserver. Supposing you - unpack in your DocumentRoot and your DocumentRoot is - /var/www/html as in a standard RedHat installation, you need - to acomplish the following steps: (the example is for a Unix-like - operating system) -

                          - -
                          -cd /var/www/html
                          -unzip /path/to/archive/HTMLArea-3.0-RC3.zip
                          -mv HTMLArea-3.0-RC3 htmlarea
                          -find htmlarea/ -type f -exec chmod 644 {} \;
                          -find htmlarea/ -type d -exec chmod 755 {} \;
                          -find htmlarea/ -name "*.cgi" -exec chmod 755 {} \;
                          - -

                          - Notes. You may chose to symlink "htmlarea" to "HTMLArea-3.0-RC3", in which case your server needs to be configured to - "FollowSymLinks". You need to make sure that *.cgi files are - interpreted as CGI scripts. If you want to use the SpellChecker - plugin you need to have a recent version of Perl installed (I - recommend 5.8.0) on the server, and the module Text::Aspell, available - from CPAN. More info in "plugins/SpellChecker/readme-tech.html". -

                          - -

                          About how to setup your pages to use the editor, please read the - [outdated yet generally valid] documentation.

                          - -

                          Status and links

                          - -

                          HTMLArea has reached version 3.0. As of this version, it - supports:

                          - -
                            - -
                          • Customizable toolbar
                          • - -
                          • Easy internationalization
                          • - -
                          • Plugin-based infrastructure
                          • - -
                          • Delivers W3-compliant HTML (with few exceptions)
                          • - -
                          • Has a subset of Microsoft Word's keyboard shortcuts
                          • - -
                          • Full-screen editor
                          • - -
                          • Advanced table operations (by external plugin - "TableOperations")
                          • - -
                          • Spell checker (by external plugin "SpellChecker")
                          • - -
                          • probably more... ;-)
                          • - -
                          - -

                          We have a project page - at SourceForge.net. There you can - also find out how - to retrieve the code from CVS, or you can browse - the CVS online. We also have a bug - system, a patch - tracking system and a feature - request page.

                          - -

                          We invite you to say everything you want about HTMLArea on the - forums at InteractiveTools.com. There you should also find the - latest news.

                          - -

                          "It doesn't work, what's wrong?"

                          - -

                          If it doesn't work, you have several options:

                          - -
                            - -
                          • Post a message to the forum. Describe your problem in as much - detail as possible. Include errors you might find in the JavaScript - console (if you are a Mozilla user), or errors displayed by IE (though - they're most of the times useless).
                          • - -
                          • If you're positive that you discovered a bug in HTMLArea then feel - free to fill a bug report in our bug system. If you have the time you - should check to see if a similar bug was reported or not; it might be - fixed already in the CVS ;-) If you're positive that a similar bug was - not yet reported, do fill a bug report and please include as much - detail as possible, such as your browser, OS, errors from JavaScript - console, etc.
                          • - -
                          • If you want a new feature to be implemented, post it on the - features request and someone will hopefully take care of it.
                          • - -
                          - -
                          - - Last modified: Wed Jul 14 13:20:53 CEST 2004 - - - - - + + + + HTMLArea -- the free, customizable online editor + + + + + +
                          + + + + + + + + + + + + +
                          Version:3.0
                          Release:RC3 (release notes)
                          Compiled at:Jan , 2005 [23:43] GMT
                          SourceForge page:http://sf.net/projects/itools-htmlarea/
                          +
                          +

                          HTMLArea -- the free
                          customizable online editor

                          + +

                          + HTMLArea is a free, customizable online editor. It works inside your + browser. It uses a non-standard feature implemented in Internet + Explorer 5.5 or better for Windows and Mozilla 1.3 or better (any + platform), therefore it will only work in one of these browsers. +

                          + +

                          + HTMLArea is copyright InteractiveTools.com and Dynarch.com and it is + released under a BSD-style license. HTMLArea is created and developed + upto version 2.03 by InteractiveTools.com. Version 3.0 developed by + Mihai Bazon for + InteractiveTools. It contains code sponsored by third-party companies as well. + Please see our About Box for details about who sponsored what plugins. +

                          + +

                          Online demos

                          + + + +

                          Installation

                          + +

                          + Installation is (or should be) easy. You need to unpack the ZIP file + in a directory accessible through your webserver. Supposing you + unpack in your DocumentRoot and your DocumentRoot is + /var/www/html as in a standard RedHat installation, you need + to acomplish the following steps: (the example is for a Unix-like + operating system) +

                          + +
                          +cd /var/www/html
                          +unzip /path/to/archive/HTMLArea-3.0-RC3.zip
                          +mv HTMLArea-3.0-RC3 htmlarea
                          +find htmlarea/ -type f -exec chmod 644 {} \;
                          +find htmlarea/ -type d -exec chmod 755 {} \;
                          +find htmlarea/ -name "*.cgi" -exec chmod 755 {} \;
                          + +

                          + Notes. You may chose to symlink "htmlarea" to "HTMLArea-3.0-RC3", in which case your server needs to be configured to + "FollowSymLinks". You need to make sure that *.cgi files are + interpreted as CGI scripts. If you want to use the SpellChecker + plugin you need to have a recent version of Perl installed (I + recommend 5.8.0) on the server, and the module Text::Aspell, available + from CPAN. More info in "plugins/SpellChecker/readme-tech.html". +

                          + +

                          About how to setup your pages to use the editor, please read the + [outdated yet generally valid] documentation.

                          + +

                          Status and links

                          + +

                          HTMLArea has reached version 3.0. As of this version, it + supports:

                          + +
                            + +
                          • Customizable toolbar
                          • + +
                          • Easy internationalization
                          • + +
                          • Plugin-based infrastructure
                          • + +
                          • Delivers W3-compliant HTML (with few exceptions)
                          • + +
                          • Has a subset of Microsoft Word's keyboard shortcuts
                          • + +
                          • Full-screen editor
                          • + +
                          • Advanced table operations (by external plugin + "TableOperations")
                          • + +
                          • Spell checker (by external plugin "SpellChecker")
                          • + +
                          • probably more... ;-)
                          • + +
                          + +

                          We have a project page + at SourceForge.net. There you can + also find out how + to retrieve the code from CVS, or you can browse + the CVS online. We also have a bug + system, a patch + tracking system and a feature + request page.

                          + +

                          We invite you to say everything you want about HTMLArea on the + forums at InteractiveTools.com. There you should also find the + latest news.

                          + +

                          "It doesn't work, what's wrong?"

                          + +

                          If it doesn't work, you have several options:

                          + +
                            + +
                          • Post a message to the forum. Describe your problem in as much + detail as possible. Include errors you might find in the JavaScript + console (if you are a Mozilla user), or errors displayed by IE (though + they're most of the times useless).
                          • + +
                          • If you're positive that you discovered a bug in HTMLArea then feel + free to fill a bug report in our bug system. If you have the time you + should check to see if a similar bug was reported or not; it might be + fixed already in the CVS ;-) If you're positive that a similar bug was + not yet reported, do fill a bug report and please include as much + detail as possible, such as your browser, OS, errors from JavaScript + console, etc.
                          • + +
                          • If you want a new feature to be implemented, post it on the + features request and someone will hopefully take care of it.
                          • + +
                          + +
                          + + Last modified: Wed Jul 14 13:20:53 CEST 2004 + + + + + Index: openacs-4/packages/acs-templating/www/resources/htmlarea/reference.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/htmlarea/reference.html,v diff -u -N -r1.2 -r1.2.18.1 --- openacs-4/packages/acs-templating/www/resources/htmlarea/reference.html 30 Jan 2005 16:13:26 -0000 1.2 +++ openacs-4/packages/acs-templating/www/resources/htmlarea/reference.html 22 Jun 2016 07:48:44 -0000 1.2.18.1 @@ -1,523 +1,523 @@ - - - -HTMLArea-3.0 Reference - - - - - - - - - - - - - -

                          HTMLArea-3.0 Documentation

                          - -
                          - - This documentation contains valid information, but is outdated in the - terms that it does not covers all the features of HTMLArea. A new - documentation project will be started, based on LaTeX. - -
                          - - -

                          Introduction

                          - -

                          What is HTMLArea?

                          - -

                          HTMLArea is a free WYSIWYG editor replacement for <textarea> -fields. By adding a few simple lines of JavaScript code to your web page -you can replace a regular textarea with a rich text editor that lets your -users do the following:

                          - -
                            -
                          • Format text to be bold, italicized, or underlined.
                          • -
                          • Change the face, size, style and color.
                          • -
                          • Left, center, or right-justify paragraphs.
                          • -
                          • Make bulleted or numbered lists.
                          • -
                          • Indent or un-indent paragraphs.
                          • -
                          • Insert a horizontal line.
                          • -
                          • Insert hyperlinks and images.
                          • -
                          • View the raw HTML source of what they're editing.
                          • -
                          • and much more...
                          • -
                          - -

                          Some of the interesting features of HTMLArea that set's it apart from -other web based WYSIWYG editors are as follows:

                          - -
                            -
                          • It's lightweight, fast loading and can transform a regular textarea - into a rich-text editor with a single line of JavaScript.
                          • -
                          • Generates clean, valid HTML.
                          • -
                          • It degrades gracefully to older or non-supported browsers - (they get the original textarea field).
                          • -
                          • It's free and can be incorporated into any free or commercial - program.
                          • -
                          • It works with any server-side languages (ASP, PHP, Perl, Java, - etc).
                          • -
                          • It's written in JavaScript and can be easily viewed, modified or - extended.
                          • -
                          • It remembers entered content when a user navigates away and then hits - "back" in their browser.
                          • -
                          • Since it replaces existing textareas it doesn't require a lot of code - to add it to your pages (just one line).
                          • -
                          • Did we mention it was free? ;-)
                          • -
                          - -

                          Is it really free? What's the catch?

                          - -

                          Yes! It's really free. You can use it, modify it, distribute it with your -software, or do just about anything you like with it.

                          - -

                          What are the browser requirements?

                          - -

                          HTMLArea requires Internet Explorer >= 5.5 -(Windows only), or Mozilla >= 1.3-Beta on any platform. -Any browser based on Gecko will -also work, provided that Gecko version is at least the one included in -Mozilla-1.3-Beta (for example, Galeon-1.2.8). However, it degrades -gracefully to other browsers. They will get a regular textarea field -instead of a WYSIWYG editor.

                          - -

                          Can I see an example of what it looks like?

                          - -

                          Just make sure you're using one of the browsers mentioned above and see -below.

                          - - - - - -

                          Where can I find out more info, download the latest version and talk to -other HTMLArea users?

                          - -

                          You can find out more about HTMLArea and download the latest version on -the HTMLArea -homepage and you can talk to other HTMLArea users and post any comments -or suggestions you have in the HTMLArea forum.

                          - -

                          Keyboard shortcuts

                          - -

                          The editor provides the following key combinations:

                          - -
                            -
                          • CTRL-A -- select all
                          • -
                          • CTRL-B -- bold
                          • -
                          • CTRL-I -- italic
                          • -
                          • CTRL-U -- underline
                          • -
                          • CTRL-S -- strikethrough
                          • -
                          • CTRL-L -- justify left
                          • -
                          • CTRL-E -- justify center
                          • -
                          • CTRL-R -- justify right
                          • -
                          • CTRL-J -- justify full
                          • -
                          • CTRL-1 .. CTRL-6 -- headings (<h1> .. <h6>)
                          • -
                          • CTRL-0 (zero) -- clean content pasted from Word
                          • -
                          - -

                          Installation

                          - -

                          How do I add HTMLArea to my web page?

                          - -

                          It's easy. First you need to upload HTMLArea files to your website. -Just follow these steps.

                          - -
                            -
                          1. Download the latest version from the htmlArea - homepage.
                          2. -
                          3. Unzip the files onto your local computer (making sure to maintain the - directory structure contained in the zip).
                          4. -
                          5. Create a new folder on your website called /htmlarea/ (make sure it's - NOT inside the cgi-bin).
                          6. -
                          7. Transfer all the HTMLArea files from your local computer into the - /htmlarea/ folder on your website.
                          8. -
                          9. Open the example page /htmlarea/examples/core.html with your browser to make - sure everything works.
                          10. -
                          - -

                          Once htmlArea is on your website all you need to do is add some -JavaScript to any pages that you want to add WYSIWYG editors to. Here's how -to do that.

                          - -
                            - -
                          1. Define some global variables. "_editor_url" has to be the absolute - URL where HTMLArea resides within your - website; as we discussed, this would be “/htmlarea/”. "_editor_lang" must - be the language code in which you want HTMLArea to appear. This defaults - to "en" (English); for a list of supported languages, please look into - the "lang" subdirectory in the distribution. -
                            <script type="text/javascript">
                            -   _editor_url = "/htmlarea/";
                            -   _editor_lang = "en";
                            -</script>
                            - -
                          2. Include the "htmlarea.js" script: -
                            <script type="text/javascript" src="/htmlarea/htmlarea.js"></script>
                            -
                          3. - -
                          4. If you want to change all your <textarea>-s into - HTMLArea-s then you can use the simplest way to create HTMLArea:

                            -
                            <script type="text/javascript" defer="1">
                            -    HTMLArea.replaceAll();
                            -</script>
                            -

                            Note: you can also add the - HTMLArea.replaceAll() code to the onload - event handler for the body element, if you find it more appropriate.

                            - -

                            A different approach, if you have more than one textarea and only want - to change one of them, is to use HTMLArea.replace("id") -- - pass the id of your textarea. Do not use the - name attribute anymore, it's not a standard solution!

                            - -
                          - -

                          This section applies to HTMLArea-3.0 release candidate 1 or later; prior -to this version, one needed to include more files; however, now HTMLArea is -able to include other files too (such as stylesheet, language definition -file, etc.) so you only need to define the editor path and load -"htmlarea.js". Nice, eh? ;-)

                          - -

                          I want to change the editor settings, how do I do that?

                          - -

                          While it's true that all you need is one line of JavaScript to create an -htmlArea WYSIWYG editor, you can also specify more config settings in the -code to control how the editor works and looks. Here's an example of some of -the available settings:

                          - -
                          var config = new HTMLArea.Config(); // create a new configuration object
                          -                                    // having all the default values
                          -config.width = '90%';
                          -config.height = '200px';
                          -
                          -// the following sets a style for the page body (black text on yellow page)
                          -// and makes all paragraphs be bold by default
                          -config.pageStyle =
                          -  'body { background-color: yellow; color: black; font-family: verdana,sans-serif } ' +
                          -  'p { font-width: bold; } ';
                          -
                          -// the following replaces the textarea with the given id with a new
                          -// HTMLArea object having the specified configuration
                          -HTMLArea.replace('id', config);
                          - -

                          Important: It's recommended that you add -custom features and configuration to a separate file. This will ensure you -that when we release a new official version of HTMLArea you'll have less -trouble upgrading it.

                          - -

                          How do I customize the toolbar?

                          - -

                          Using the configuration object introduced above allows you to completely -control what the toolbar contains. Following is an example of a one-line, -customized toolbar, much simpler than the default one:

                          - -
                          var config = new HTMLArea.Config();
                          -config.toolbar = [
                          -  ['fontname', 'space',
                          -   'fontsize', 'space',
                          -   'formatblock', 'space',
                          -   'bold', 'italic', 'underline']
                          -];
                          -HTMLArea.replace('id', config);
                          - -

                          The toolbar is an Array of Array objects. Each array in the toolbar -defines a new line. The default toolbar looks like this:

                          - -
                          config.toolbar = [
                          -[ "fontname", "space",
                          -  "fontsize", "space",
                          -  "formatblock", "space",
                          -  "bold", "italic", "underline", "separator",
                          -  "strikethrough", "subscript", "superscript", "separator",
                          -  "copy", "cut", "paste", "space", "undo", "redo" ],
                          -
                          -[ "justifyleft", "justifycenter", "justifyright", "justifyfull", "separator",
                          -  "insertorderedlist", "insertunorderedlist", "outdent", "indent", "separator",
                          -  "forecolor", "hilitecolor", "textindicator", "separator",
                          -  "inserthorizontalrule", "createlink", "insertimage", "inserttable", "htmlmode", "separator",
                          -  "popupeditor", "separator", "showhelp", "about" ]
                          -];
                          - -

                          Except three strings, all others in the examples above need to be defined -in the config.btnList object (detailed a bit later in this -document). The three exceptions are: 'space', 'separator' and 'linebreak'. -These three have the following meaning, and need not be present in -btnList:

                          - -
                            -
                          • 'space' -- Inserts a space of 5 pixels (the width is configurable by external - CSS) at the current - position in the toolbar.
                          • -
                          • 'separator' -- Inserts a small vertical separator, for visually grouping related - buttons.
                          • -
                          • 'linebreak' -- Starts a new line in the toolbar. Subsequent controls will be - inserted on the new line.
                          • -
                          - -

                          Important: It's recommended that you add -custom features and configuration to a separate file. This will ensure you -that when we release a new official version of HTMLArea you'll have less -trouble upgrading it.

                          - -

                          How do I create custom buttons?

                          - -

                          By design, the toolbar is easily extensible. For adding a custom button -one needs to follow two steps.

                          - -

                          1. Register the button in config.btnList.

                          - -

                          For each button in the toolbar, HTMLArea needs to know the following -information:

                          -
                            -
                          • a name for it (we call it the ID of the button);
                          • -
                          • the path to an image to be displayed in the toolbar;
                          • -
                          • a tooltip for it;
                          • -
                          • whether the button is enabled or not in text mode;
                          • -
                          • what to do when the button is clicked;
                          • -
                          -

                          You need to provide all this information for registering a new button -too. The button ID can be any string identifier and it's used when -defining the toolbar, as you saw above. We recommend starting -it with "my-" so that it won't clash with the standard ID-s (those from -the default toolbar).

                          - -

                          Register button example #1

                          - -
                          // get a default configuration
                          -var config = new HTMLArea.Config();
                          -// register the new button using Config.registerButton.
                          -// parameters:        button ID,   tooltip,          image,           textMode,
                          -config.registerButton("my-hilite", "Highlight text", "my-hilite.gif", false,
                          -// function that gets called when the button is clicked
                          -  function(editor, id) {
                          -    editor.surroundHTML('<span class="hilite">', '</span>');
                          -  }
                          -);
                          - -

                          An alternate way of calling registerButton is exemplified above. Though -the code might be a little bit larger, using this form makes your code more -maintainable. It doesn't even needs comments as it's pretty clear.

                          - -

                          Register button example #2

                          - -
                          var config = new HTMLArea.Config();
                          -config.registerButton({
                          -  id        : "my-hilite",
                          -  tooltip   : "Highlight text",
                          -  image     : "my-hilite.gif",
                          -  textMode  : false,
                          -  action    : function(editor, id) {
                          -                editor.surroundHTML('<span class="hilite">', '</span>');
                          -              }
                          -});
                          - -

                          You might notice that the "action" function receives two parameters: -editor and id. In the examples above we only used the -editor parameter. But it could be helpful for you to understand -both:

                          - -
                            -
                          • editor is a reference to the HTMLArea object. Since our entire - code now has an OOP-like - design, you need to have a reference to - the editor object in order to do things with it. In previous versions of - HTMLArea, in order to identify the object an ID was used -- the ID of the - HTML element. In this version ID-s are no longer necessary.
                          • - -
                          • id is the button ID. Wondering why is this useful? Well, you - could use the same handler function (presuming that it's not an anonymous - function like in the examples above) for more buttons. You can see an example a bit later in this document.
                          • -
                          - -

                          2. Inserting it into the toolbar

                          - -

                          At this step you need to specify where in the toolbar to insert the -button, or just create the whole toolbar again as you saw in the previous -section. You use the button ID, as shown in the examples of customizing the -toolbar in the previous section.

                          - -

                          For the sake of completion, following there are another examples.

                          - -

                          Append your button to the default toolbar

                          - -
                          config.toolbar.push([ "my-hilite" ]);
                          - -

                          Customized toolbar

                          - -
                          config.toolbar = [
                          -  ['fontname', 'space',
                          -   'fontsize', 'space',
                          -   'formatblock', 'space',
                          -   'separator', 'my-hilite', 'separator', 'space', // here's your button
                          -   'bold', 'italic', 'underline', 'space']
                          -];
                          - -

                          Note: in the example above our new button is -between two vertical separators. But this is by no means required. You can -put it wherever you like. Once registered in the btnList (step 1) your custom button behaves just like a default -button.

                          - -

                          Important: It's recommended that you add -custom features and configuration to a separate file. This will ensure you -that when we release a new official version of HTMLArea you'll have less -trouble upgrading it.

                          - -

                          A complete example

                          - -

                          Please note that it is by no means necessary to include the following -code into the htmlarea.js file. On the contrary, it might not work there. -The configuration system is designed such that you can always customize the -editor from outside files, thus keeping the htmlarea.js file -intact. This will make it easy for you to upgrade your HTMLArea when we -release a new official version. OK, I promise it's the last time I said -this. ;)

                          - -
                          // All our custom buttons will call this function when clicked.
                          -// We use the buttonId parameter to determine what button
                          -// triggered the call.
                          -function clickHandler(editor, buttonId) {
                          -  switch (buttonId) {
                          -    case "my-toc":
                          -      editor.insertHTML("<h1>Table Of Contents</h1>");
                          -      break;
                          -    case "my-date":
                          -      editor.insertHTML((new Date()).toString());
                          -      break;
                          -    case "my-bold":
                          -      editor.execCommand("bold");
                          -      editor.execCommand("italic");
                          -      break;
                          -    case "my-hilite":
                          -      editor.surroundHTML("<span class=\"hilite\">", "</span>");
                          -      break;
                          -  }
                          -};
                          -
                          -// Create a new configuration object
                          -var config = new HTMLArea.Config();
                          -
                          -// Register our custom buttons
                          -config.registerButton("my-toc",  "Insert TOC", "my-toc.gif", false, clickHandler);
                          -config.registerButton("my-date", "Insert date/time", "my-date.gif", false, clickHandler);
                          -config.registerButton("my-bold", "Toggle bold/italic", "my-bold.gif", false, clickHandler);
                          -config.registerButton("my-hilite", "Hilite selection", "my-hilite.gif", false, clickHandler);
                          -
                          -// Append the buttons to the default toolbar
                          -config.toolbar.push(["linebreak", "my-toc", "my-date", "my-bold", "my-hilite"]);
                          -
                          -// Replace an existing textarea with an HTMLArea object having the above config.
                          -HTMLArea.replace("textAreaID", config);
                          - - -
                          -
                          © InteractiveTools.com 2002-2004. -
                          dynarch.com 2003-2004
                          -HTMLArea v3.0 developed by Mihai Bazon. -
                          -Documentation written by Mihai Bazon. -
                          - Last modified: Wed Jan 28 12:18:23 EET 2004 - - + + + +HTMLArea-3.0 Reference + + + + + + + + + + + + + +

                          HTMLArea-3.0 Documentation

                          + +
                          + + This documentation contains valid information, but is outdated in the + terms that it does not covers all the features of HTMLArea. A new + documentation project will be started, based on LaTeX. + +
                          + + +

                          Introduction

                          + +

                          What is HTMLArea?

                          + +

                          HTMLArea is a free WYSIWYG editor replacement for <textarea> +fields. By adding a few simple lines of JavaScript code to your web page +you can replace a regular textarea with a rich text editor that lets your +users do the following:

                          + +
                            +
                          • Format text to be bold, italicized, or underlined.
                          • +
                          • Change the face, size, style and color.
                          • +
                          • Left, center, or right-justify paragraphs.
                          • +
                          • Make bulleted or numbered lists.
                          • +
                          • Indent or un-indent paragraphs.
                          • +
                          • Insert a horizontal line.
                          • +
                          • Insert hyperlinks and images.
                          • +
                          • View the raw HTML source of what they're editing.
                          • +
                          • and much more...
                          • +
                          + +

                          Some of the interesting features of HTMLArea that set's it apart from +other web based WYSIWYG editors are as follows:

                          + +
                            +
                          • It's lightweight, fast loading and can transform a regular textarea + into a rich-text editor with a single line of JavaScript.
                          • +
                          • Generates clean, valid HTML.
                          • +
                          • It degrades gracefully to older or non-supported browsers + (they get the original textarea field).
                          • +
                          • It's free and can be incorporated into any free or commercial + program.
                          • +
                          • It works with any server-side languages (ASP, PHP, Perl, Java, + etc).
                          • +
                          • It's written in JavaScript and can be easily viewed, modified or + extended.
                          • +
                          • It remembers entered content when a user navigates away and then hits + "back" in their browser.
                          • +
                          • Since it replaces existing textareas it doesn't require a lot of code + to add it to your pages (just one line).
                          • +
                          • Did we mention it was free? ;-)
                          • +
                          + +

                          Is it really free? What's the catch?

                          + +

                          Yes! It's really free. You can use it, modify it, distribute it with your +software, or do just about anything you like with it.

                          + +

                          What are the browser requirements?

                          + +

                          HTMLArea requires Internet Explorer >= 5.5 +(Windows only), or Mozilla >= 1.3-Beta on any platform. +Any browser based on Gecko will +also work, provided that Gecko version is at least the one included in +Mozilla-1.3-Beta (for example, Galeon-1.2.8). However, it degrades +gracefully to other browsers. They will get a regular textarea field +instead of a WYSIWYG editor.

                          + +

                          Can I see an example of what it looks like?

                          + +

                          Just make sure you're using one of the browsers mentioned above and see +below.

                          + +
                          + +
                          + +

                          Where can I find out more info, download the latest version and talk to +other HTMLArea users?

                          + +

                          You can find out more about HTMLArea and download the latest version on +the HTMLArea +homepage and you can talk to other HTMLArea users and post any comments +or suggestions you have in the HTMLArea forum.

                          + +

                          Keyboard shortcuts

                          + +

                          The editor provides the following key combinations:

                          + +
                            +
                          • CTRL-A -- select all
                          • +
                          • CTRL-B -- bold
                          • +
                          • CTRL-I -- italic
                          • +
                          • CTRL-U -- underline
                          • +
                          • CTRL-S -- strikethrough
                          • +
                          • CTRL-L -- justify left
                          • +
                          • CTRL-E -- justify center
                          • +
                          • CTRL-R -- justify right
                          • +
                          • CTRL-J -- justify full
                          • +
                          • CTRL-1 .. CTRL-6 -- headings (<h1> .. <h6>)
                          • +
                          • CTRL-0 (zero) -- clean content pasted from Word
                          • +
                          + +

                          Installation

                          + +

                          How do I add HTMLArea to my web page?

                          + +

                          It's easy. First you need to upload HTMLArea files to your website. +Just follow these steps.

                          + +
                            +
                          1. Download the latest version from the htmlArea + homepage.
                          2. +
                          3. Unzip the files onto your local computer (making sure to maintain the + directory structure contained in the zip).
                          4. +
                          5. Create a new folder on your website called /htmlarea/ (make sure it's + NOT inside the cgi-bin).
                          6. +
                          7. Transfer all the HTMLArea files from your local computer into the + /htmlarea/ folder on your website.
                          8. +
                          9. Open the example page /htmlarea/examples/core.html with your browser to make + sure everything works.
                          10. +
                          + +

                          Once htmlArea is on your website all you need to do is add some +JavaScript to any pages that you want to add WYSIWYG editors to. Here's how +to do that.

                          + +
                            + +
                          1. Define some global variables. "_editor_url" has to be the absolute + URL where HTMLArea resides within your + website; as we discussed, this would be “/htmlarea/”. "_editor_lang" must + be the language code in which you want HTMLArea to appear. This defaults + to "en" (English); for a list of supported languages, please look into + the "lang" subdirectory in the distribution. +
                            <script type="text/javascript">
                            +   _editor_url = "/htmlarea/";
                            +   _editor_lang = "en";
                            +</script>
                            + +
                          2. Include the "htmlarea.js" script: +
                            <script type="text/javascript" src="/htmlarea/htmlarea.js"></script>
                            +
                          3. + +
                          4. If you want to change all your <textarea>-s into + HTMLArea-s then you can use the simplest way to create HTMLArea:

                            +
                            <script type="text/javascript" defer="1">
                            +    HTMLArea.replaceAll();
                            +</script>
                            +

                            Note: you can also add the + HTMLArea.replaceAll() code to the onload + event handler for the body element, if you find it more appropriate.

                            + +

                            A different approach, if you have more than one textarea and only want + to change one of them, is to use HTMLArea.replace("id") -- + pass the id of your textarea. Do not use the + name attribute anymore, it's not a standard solution!

                            + +
                          + +

                          This section applies to HTMLArea-3.0 release candidate 1 or later; prior +to this version, one needed to include more files; however, now HTMLArea is +able to include other files too (such as stylesheet, language definition +file, etc.) so you only need to define the editor path and load +"htmlarea.js". Nice, eh? ;-)

                          + +

                          I want to change the editor settings, how do I do that?

                          + +

                          While it's true that all you need is one line of JavaScript to create an +htmlArea WYSIWYG editor, you can also specify more config settings in the +code to control how the editor works and looks. Here's an example of some of +the available settings:

                          + +
                          var config = new HTMLArea.Config(); // create a new configuration object
                          +                                    // having all the default values
                          +config.width = '90%';
                          +config.height = '200px';
                          +
                          +// the following sets a style for the page body (black text on yellow page)
                          +// and makes all paragraphs be bold by default
                          +config.pageStyle =
                          +  'body { background-color: yellow; color: black; font-family: verdana,sans-serif } ' +
                          +  'p { font-width: bold; } ';
                          +
                          +// the following replaces the textarea with the given id with a new
                          +// HTMLArea object having the specified configuration
                          +HTMLArea.replace('id', config);
                          + +

                          Important: It's recommended that you add +custom features and configuration to a separate file. This will ensure you +that when we release a new official version of HTMLArea you'll have less +trouble upgrading it.

                          + +

                          How do I customize the toolbar?

                          + +

                          Using the configuration object introduced above allows you to completely +control what the toolbar contains. Following is an example of a one-line, +customized toolbar, much simpler than the default one:

                          + +
                          var config = new HTMLArea.Config();
                          +config.toolbar = [
                          +  ['fontname', 'space',
                          +   'fontsize', 'space',
                          +   'formatblock', 'space',
                          +   'bold', 'italic', 'underline']
                          +];
                          +HTMLArea.replace('id', config);
                          + +

                          The toolbar is an Array of Array objects. Each array in the toolbar +defines a new line. The default toolbar looks like this:

                          + +
                          config.toolbar = [
                          +[ "fontname", "space",
                          +  "fontsize", "space",
                          +  "formatblock", "space",
                          +  "bold", "italic", "underline", "separator",
                          +  "strikethrough", "subscript", "superscript", "separator",
                          +  "copy", "cut", "paste", "space", "undo", "redo" ],
                          +
                          +[ "justifyleft", "justifycenter", "justifyright", "justifyfull", "separator",
                          +  "insertorderedlist", "insertunorderedlist", "outdent", "indent", "separator",
                          +  "forecolor", "hilitecolor", "textindicator", "separator",
                          +  "inserthorizontalrule", "createlink", "insertimage", "inserttable", "htmlmode", "separator",
                          +  "popupeditor", "separator", "showhelp", "about" ]
                          +];
                          + +

                          Except three strings, all others in the examples above need to be defined +in the config.btnList object (detailed a bit later in this +document). The three exceptions are: 'space', 'separator' and 'linebreak'. +These three have the following meaning, and need not be present in +btnList:

                          + +
                            +
                          • 'space' -- Inserts a space of 5 pixels (the width is configurable by external + CSS) at the current + position in the toolbar.
                          • +
                          • 'separator' -- Inserts a small vertical separator, for visually grouping related + buttons.
                          • +
                          • 'linebreak' -- Starts a new line in the toolbar. Subsequent controls will be + inserted on the new line.
                          • +
                          + +

                          Important: It's recommended that you add +custom features and configuration to a separate file. This will ensure you +that when we release a new official version of HTMLArea you'll have less +trouble upgrading it.

                          + +

                          How do I create custom buttons?

                          + +

                          By design, the toolbar is easily extensible. For adding a custom button +one needs to follow two steps.

                          + +

                          1. Register the button in config.btnList.

                          + +

                          For each button in the toolbar, HTMLArea needs to know the following +information:

                          +
                            +
                          • a name for it (we call it the ID of the button);
                          • +
                          • the path to an image to be displayed in the toolbar;
                          • +
                          • a tooltip for it;
                          • +
                          • whether the button is enabled or not in text mode;
                          • +
                          • what to do when the button is clicked;
                          • +
                          +

                          You need to provide all this information for registering a new button +too. The button ID can be any string identifier and it's used when +defining the toolbar, as you saw above. We recommend starting +it with "my-" so that it won't clash with the standard ID-s (those from +the default toolbar).

                          + +

                          Register button example #1

                          + +
                          // get a default configuration
                          +var config = new HTMLArea.Config();
                          +// register the new button using Config.registerButton.
                          +// parameters:        button ID,   tooltip,          image,           textMode,
                          +config.registerButton("my-hilite", "Highlight text", "my-hilite.gif", false,
                          +// function that gets called when the button is clicked
                          +  function(editor, id) {
                          +    editor.surroundHTML('<span class="hilite">', '</span>');
                          +  }
                          +);
                          + +

                          An alternate way of calling registerButton is exemplified above. Though +the code might be a little bit larger, using this form makes your code more +maintainable. It doesn't even needs comments as it's pretty clear.

                          + +

                          Register button example #2

                          + +
                          var config = new HTMLArea.Config();
                          +config.registerButton({
                          +  id        : "my-hilite",
                          +  tooltip   : "Highlight text",
                          +  image     : "my-hilite.gif",
                          +  textMode  : false,
                          +  action    : function(editor, id) {
                          +                editor.surroundHTML('<span class="hilite">', '</span>');
                          +              }
                          +});
                          + +

                          You might notice that the "action" function receives two parameters: +editor and id. In the examples above we only used the +editor parameter. But it could be helpful for you to understand +both:

                          + +
                            +
                          • editor is a reference to the HTMLArea object. Since our entire + code now has an OOP-like + design, you need to have a reference to + the editor object in order to do things with it. In previous versions of + HTMLArea, in order to identify the object an ID was used -- the ID of the + HTML element. In this version ID-s are no longer necessary.
                          • + +
                          • id is the button ID. Wondering why is this useful? Well, you + could use the same handler function (presuming that it's not an anonymous + function like in the examples above) for more buttons. You can see an example a bit later in this document.
                          • +
                          + +

                          2. Inserting it into the toolbar

                          + +

                          At this step you need to specify where in the toolbar to insert the +button, or just create the whole toolbar again as you saw in the previous +section. You use the button ID, as shown in the examples of customizing the +toolbar in the previous section.

                          + +

                          For the sake of completion, following there are another examples.

                          + +

                          Append your button to the default toolbar

                          + +
                          config.toolbar.push([ "my-hilite" ]);
                          + +

                          Customized toolbar

                          + +
                          config.toolbar = [
                          +  ['fontname', 'space',
                          +   'fontsize', 'space',
                          +   'formatblock', 'space',
                          +   'separator', 'my-hilite', 'separator', 'space', // here's your button
                          +   'bold', 'italic', 'underline', 'space']
                          +];
                          + +

                          Note: in the example above our new button is +between two vertical separators. But this is by no means required. You can +put it wherever you like. Once registered in the btnList (step 1) your custom button behaves just like a default +button.

                          + +

                          Important: It's recommended that you add +custom features and configuration to a separate file. This will ensure you +that when we release a new official version of HTMLArea you'll have less +trouble upgrading it.

                          + +

                          A complete example

                          + +

                          Please note that it is by no means necessary to include the following +code into the htmlarea.js file. On the contrary, it might not work there. +The configuration system is designed such that you can always customize the +editor from outside files, thus keeping the htmlarea.js file +intact. This will make it easy for you to upgrade your HTMLArea when we +release a new official version. OK, I promise it's the last time I said +this. ;)

                          + +
                          // All our custom buttons will call this function when clicked.
                          +// We use the buttonId parameter to determine what button
                          +// triggered the call.
                          +function clickHandler(editor, buttonId) {
                          +  switch (buttonId) {
                          +    case "my-toc":
                          +      editor.insertHTML("<h1>Table Of Contents</h1>");
                          +      break;
                          +    case "my-date":
                          +      editor.insertHTML((new Date()).toString());
                          +      break;
                          +    case "my-bold":
                          +      editor.execCommand("bold");
                          +      editor.execCommand("italic");
                          +      break;
                          +    case "my-hilite":
                          +      editor.surroundHTML("<span class=\"hilite\">", "</span>");
                          +      break;
                          +  }
                          +};
                          +
                          +// Create a new configuration object
                          +var config = new HTMLArea.Config();
                          +
                          +// Register our custom buttons
                          +config.registerButton("my-toc",  "Insert TOC", "my-toc.gif", false, clickHandler);
                          +config.registerButton("my-date", "Insert date/time", "my-date.gif", false, clickHandler);
                          +config.registerButton("my-bold", "Toggle bold/italic", "my-bold.gif", false, clickHandler);
                          +config.registerButton("my-hilite", "Hilite selection", "my-hilite.gif", false, clickHandler);
                          +
                          +// Append the buttons to the default toolbar
                          +config.toolbar.push(["linebreak", "my-toc", "my-date", "my-bold", "my-hilite"]);
                          +
                          +// Replace an existing textarea with an HTMLArea object having the above config.
                          +HTMLArea.replace("textAreaID", config);
                          + + +
                          +
                          © InteractiveTools.com 2002-2004. +
                          dynarch.com 2003-2004
                          +HTMLArea v3.0 developed by Mihai Bazon. +
                          +Documentation written by Mihai Bazon. +
                          + Last modified: Wed Jan 28 12:18:23 EET 2004 + + Index: openacs-4/packages/acs-templating/www/resources/htmlarea/release-notes.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/htmlarea/release-notes.html,v diff -u -N -r1.2 -r1.2.18.1 --- openacs-4/packages/acs-templating/www/resources/htmlarea/release-notes.html 30 Jan 2005 16:13:26 -0000 1.2 +++ openacs-4/packages/acs-templating/www/resources/htmlarea/release-notes.html 22 Jun 2016 07:48:44 -0000 1.2.18.1 @@ -1,182 +1,182 @@ - - - - - HTMLArea-3.0-RC3 release notes - - - - - -

                          HTMLArea-3.0-RC3 release notes

                          - -

                          This release was compiled on Jan , 2005 [23:43] GMT.

                          - -

                          Changes since 3.0-RC2b:

                          - -
                            -
                          • Restored broken images and re-committed ALL images back to CVS in binary mode. -
                          • Added error with instructions for when HTMLArea.init() isn't called first. -
                          • Fixed examples to call HTMLArea.init() first: -
                              -
                            • 2-areas.html -
                            • character_map.html -
                            • css.html -
                            • dynamic_css.html -
                            • list-type.html -
                            • remove-font-tags.html -
                            -
                          • -
                          - - -

                          Changes since 3.0-Beta:

                          - -
                            -
                          • - New plugins -
                              -
                            • - ContextMenu plugin (provides a nice context menu with common - operations, including table ops, link ops, etc.) -
                            • -
                            • - CSS plugin (provides an easy way to insert/change CSS classes) -
                            • -
                            • - FullPage plugin (allows HTMLArea to edit a whole HTML file, - not only the content within <body>.) -
                            • -
                            -
                          • -
                          • - Changes in the SpellChecker plugin -
                              -
                            • - Many bugfixes: now it works ;-) Fully Unicode-safe. -
                            • -
                            • - Speed and bandwidth optimization: reports the list of - suggestions only once for each mispelled word; this helps - in cases where you have, for instance, the word “HTMLArea” - in 10 places all over the document; the list of - suggestions for it--which is kind of huge--will only be - included once. -
                            • -
                            • - User interface improvements: the highlighted word will - remain in view; in cases where it's normally outside, the - window will be scrolled to it. -
                            • -
                            • - Added a "Revert" button for those that change their minds ;-) -
                            • -
                            • - Added a "Info" button which reports information about the - document, retrieved by the server-side spell checker: - total number of words, total number of mispelled words, - number of suggestions made, spell check time, etc. More - can be easily added. FIXME: this part - is not yet internationalized. -
                            • -
                            • - The server-side spell checker now uses XML::DOM instead of - HTML::Parser, which means that it will be unable to parse - “tag-soup” HTML. It needs valid code. Usually HTMLArea - generates valid code, but on rare occasions it might fail - and the spell checker will report a gross error message. - This gonna have to be fixed, but instead of making the - spell checker accept invalid HTML I prefer to make - HTMLArea generate valid code, so changes are to be done in - other places ;-) -
                            • -
                            -
                          • -
                          • - Changes in the core editor -
                              -
                            • - Easier to setup: you only need to load - htmlarea.js; other scripts will be loaded - automatically. Documentation - and examples updated. -
                            • -
                            • - Better plugin support (they register information about - themselves with the editor; can register event handlers for - the editor, etc.) -
                            • -
                            • - New about box; check it out, it's cool ;-) -
                            • -
                            • - Word cleaner (can be enabled to automatically kill Word crap - on paste (see Config.killWordOnPaste); otherwise accessible by - pressing CTRL-0 in the editor; a toolbar button will come up - soon) -
                            • -
                            • - Image preview in "insert image" dialog. Also allows - modification of current image, if selected. -
                            • -
                            • - New "insert link" dialog, allows target and title - specification, allows editing links. -
                            • -
                            • - Implemented support for text direction (left-to-right or - right-to-left). -
                            • -
                            • - Lots of bug fixes! ... and more, I guess ;-) an - automatically generated change log - is now available. -
                            • -
                            -
                          • -
                          - -

                          I don't have the power to go through the bug -system at SourceForge - now. Some of the bugs reported there may be fixed; I'll update - their status, some other time. If you reported bugs there and now - find them to be fixed, please let me know.

                          - -

                          3.0-Beta

                          - -

                          Changes since 3.0-Alpha:

                          - -
                            - -
                          • Performance improvements.
                          • - -
                          • Many bugs fixed.
                          • - -
                          • Plugin infrastructure.
                          • - -
                          • TableOperations plugin.
                          • - -
                          • SpellChecker plugin.
                          • - -
                          • Status bar.
                          • - -
                          • API for registering custom buttons and drop-down boxes in the - toolbar.
                          • - -
                          • Toolbar can contain text labels.
                          • - -
                          • Cut, copy, paste, undo, redo buttons.
                          • - -
                          -
                          -
                          Mihai Bazon
                          - - Last modified: Wed Mar 31 19:18:26 EEST 2004 - - - - - + + + + + HTMLArea-3.0-RC3 release notes + + + + + +

                          HTMLArea-3.0-RC3 release notes

                          + +

                          This release was compiled on Jan , 2005 [23:43] GMT.

                          + +

                          Changes since 3.0-RC2b:

                          + +
                            +
                          • Restored broken images and re-committed ALL images back to CVS in binary mode. +
                          • Added error with instructions for when HTMLArea.init() isn't called first. +
                          • Fixed examples to call HTMLArea.init() first: +
                              +
                            • 2-areas.html +
                            • character_map.html +
                            • css.html +
                            • dynamic_css.html +
                            • list-type.html +
                            • remove-font-tags.html +
                            +
                          • +
                          + + +

                          Changes since 3.0-Beta:

                          + +
                            +
                          • + New plugins +
                              +
                            • + ContextMenu plugin (provides a nice context menu with common + operations, including table ops, link ops, etc.) +
                            • +
                            • + CSS plugin (provides an easy way to insert/change CSS classes) +
                            • +
                            • + FullPage plugin (allows HTMLArea to edit a whole HTML file, + not only the content within <body>.) +
                            • +
                            +
                          • +
                          • + Changes in the SpellChecker plugin +
                              +
                            • + Many bugfixes: now it works ;-) Fully Unicode-safe. +
                            • +
                            • + Speed and bandwidth optimization: reports the list of + suggestions only once for each mispelled word; this helps + in cases where you have, for instance, the word “HTMLArea” + in 10 places all over the document; the list of + suggestions for it--which is kind of huge--will only be + included once. +
                            • +
                            • + User interface improvements: the highlighted word will + remain in view; in cases where it's normally outside, the + window will be scrolled to it. +
                            • +
                            • + Added a "Revert" button for those that change their minds ;-) +
                            • +
                            • + Added a "Info" button which reports information about the + document, retrieved by the server-side spell checker: + total number of words, total number of mispelled words, + number of suggestions made, spell check time, etc. More + can be easily added. FIXME: this part + is not yet internationalized. +
                            • +
                            • + The server-side spell checker now uses XML::DOM instead of + HTML::Parser, which means that it will be unable to parse + “tag-soup” HTML. It needs valid code. Usually HTMLArea + generates valid code, but on rare occasions it might fail + and the spell checker will report a gross error message. + This gonna have to be fixed, but instead of making the + spell checker accept invalid HTML I prefer to make + HTMLArea generate valid code, so changes are to be done in + other places ;-) +
                            • +
                            +
                          • +
                          • + Changes in the core editor +
                              +
                            • + Easier to setup: you only need to load + htmlarea.js; other scripts will be loaded + automatically. Documentation + and examples updated. +
                            • +
                            • + Better plugin support (they register information about + themselves with the editor; can register event handlers for + the editor, etc.) +
                            • +
                            • + New about box; check it out, it's cool ;-) +
                            • +
                            • + Word cleaner (can be enabled to automatically kill Word crap + on paste (see Config.killWordOnPaste); otherwise accessible by + pressing CTRL-0 in the editor; a toolbar button will come up + soon) +
                            • +
                            • + Image preview in "insert image" dialog. Also allows + modification of current image, if selected. +
                            • +
                            • + New "insert link" dialog, allows target and title + specification, allows editing links. +
                            • +
                            • + Implemented support for text direction (left-to-right or + right-to-left). +
                            • +
                            • + Lots of bug fixes! ... and more, I guess ;-) an + automatically generated change log + is now available. +
                            • +
                            +
                          • +
                          + +

                          I don't have the power to go through the bug +system at SourceForge + now. Some of the bugs reported there may be fixed; I'll update + their status, some other time. If you reported bugs there and now + find them to be fixed, please let me know.

                          + +

                          3.0-Beta

                          + +

                          Changes since 3.0-Alpha:

                          + +
                            + +
                          • Performance improvements.
                          • + +
                          • Many bugs fixed.
                          • + +
                          • Plugin infrastructure.
                          • + +
                          • TableOperations plugin.
                          • + +
                          • SpellChecker plugin.
                          • + +
                          • Status bar.
                          • + +
                          • API for registering custom buttons and drop-down boxes in the + toolbar.
                          • + +
                          • Toolbar can contain text labels.
                          • + +
                          • Cut, copy, paste, undo, redo buttons.
                          • + +
                          +
                          +
                          Mihai Bazon
                          + + Last modified: Wed Mar 31 19:18:26 EEST 2004 + + + + + Index: openacs-4/packages/acs-templating/www/resources/htmlarea/examples/core.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/htmlarea/examples/core.html,v diff -u -N -r1.1 -r1.1.18.1 --- openacs-4/packages/acs-templating/www/resources/htmlarea/examples/core.html 30 Jan 2005 16:13:26 -0000 1.1 +++ openacs-4/packages/acs-templating/www/resources/htmlarea/examples/core.html 22 Jun 2016 07:48:44 -0000 1.1.18.1 @@ -1,184 +1,184 @@ - - -Example of HTMLArea 3.0 - - - - - - - - - - - - - - - - -

                          HTMLArea 3.0

                          - -

                          A replacement for TEXTAREA elements. © InteractiveTools.com, 2003-2004.

                          - -
                          - - - -

                          - - - - - -submit - - - -

                          - - - + + +Example of HTMLArea 3.0 + + + + + + + + + + + + + + + + +

                          HTMLArea 3.0

                          + +

                          A replacement for TEXTAREA elements. © InteractiveTools.com, 2003-2004.

                          + +
                          + + + +

                          + + + + + +submit + + + +

                          + + + Index: openacs-4/packages/acs-templating/www/resources/htmlarea/examples/spell-checker.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/htmlarea/examples/spell-checker.html,v diff -u -N -r1.1 -r1.1.18.1 --- openacs-4/packages/acs-templating/www/resources/htmlarea/examples/spell-checker.html 30 Jan 2005 16:13:26 -0000 1.1 +++ openacs-4/packages/acs-templating/www/resources/htmlarea/examples/spell-checker.html 22 Jun 2016 07:48:44 -0000 1.1.18.1 @@ -1,132 +1,132 @@ - - -Example of HTMLArea 3.0 - - - - - - - - - - - - - - - - - -

                          HTMLArea 3.0

                          - -

                          A replacement for TEXTAREA elements. © InteractiveTools.com, 2003-2004.

                          - -

                          Plugins: - SpellChecker (sponsored by American Bible Society). -

                          - -
                          - - - -

                          - - - - - -submit - - - -

                          - - - + + +Example of HTMLArea 3.0 + + + + + + + + + + + + + + + + + +

                          HTMLArea 3.0

                          + +

                          A replacement for TEXTAREA elements. © InteractiveTools.com, 2003-2004.

                          + +

                          Plugins: + SpellChecker (sponsored by American Bible Society). +

                          + +
                          + + + +

                          + + + + + +submit + + + +

                          + + + Index: openacs-4/packages/acs-templating/www/resources/htmlarea/examples/table-operations.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/htmlarea/examples/table-operations.html,v diff -u -N -r1.1 -r1.1.18.1 --- openacs-4/packages/acs-templating/www/resources/htmlarea/examples/table-operations.html 30 Jan 2005 16:13:26 -0000 1.1 +++ openacs-4/packages/acs-templating/www/resources/htmlarea/examples/table-operations.html 22 Jun 2016 07:48:44 -0000 1.1.18.1 @@ -1,116 +1,116 @@ - - -Example of HTMLArea 3.0 - - - - - - - - - - - - - - - - - -

                          HTMLArea 3.0

                          - -

                          A replacement for TEXTAREA elements. © InteractiveTools.com, 2003-2004.

                          - -

                          Page that demonstrates the additional features of the -TableOperations plugin (sponsored by Zapatec Inc.).

                          - -
                          - - - -

                          - - - - - -submit - - - -

                          - - - + + +Example of HTMLArea 3.0 + + + + + + + + + + + + + + + + + +

                          HTMLArea 3.0

                          + +

                          A replacement for TEXTAREA elements. © InteractiveTools.com, 2003-2004.

                          + +

                          Page that demonstrates the additional features of the +TableOperations plugin (sponsored by Zapatec Inc.).

                          + +
                          + + + +

                          + + + + + +submit + + + +

                          + + + Index: openacs-4/packages/acs-templating/www/resources/htmlarea/plugins/SpellChecker/readme-tech.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/htmlarea/plugins/SpellChecker/readme-tech.html,v diff -u -N -r1.2 -r1.2.18.1 --- openacs-4/packages/acs-templating/www/resources/htmlarea/plugins/SpellChecker/readme-tech.html 30 Jan 2005 16:13:31 -0000 1.2 +++ openacs-4/packages/acs-templating/www/resources/htmlarea/plugins/SpellChecker/readme-tech.html 22 Jun 2016 07:48:44 -0000 1.2.18.1 @@ -1,114 +1,114 @@ - - - - HTMLArea Spell Checker - - - -

                          HTMLArea Spell Checker

                          - -

                          The HTMLArea Spell Checker subsystem consists of the following - files:

                          - -
                            - -
                          • spell-checker.js — the spell checker plugin interface for - HTMLArea
                          • - -
                          • spell-checker-ui.html — the HTML code for the user - interface
                          • - -
                          • spell-checker-ui.js — functionality of the user - interface
                          • - -
                          • spell-checker-logic.cgi — Perl CGI script that checks a text - given through POST for spelling errors
                          • - -
                          • spell-checker-style.css — style for mispelled words
                          • - -
                          • lang/en.js — main language file (English).
                          • - -
                          - -

                          Process overview

                          - -

                          - When an end-user clicks the "spell-check" button in the HTMLArea - editor, a new window is opened with the URL of "spell-check-ui.html". - This window initializes itself with the text found in the editor (uses - window.opener.SpellChecker.editor global variable) and it - submits the text to the server-side script "spell-check-logic.cgi". - The target of the FORM is an inline frame which is used both to - display the text and correcting. -

                          - -

                          - Further, spell-check-logic.cgi calls Aspell for each portion of plain - text found in the given HTML. It rebuilds an HTML file that contains - clear marks of which words are incorrect, along with suggestions for - each of them. This file is then loaded in the inline frame. Upon - loading, a JavaScript function from "spell-check-ui.js" is called. - This function will retrieve all mispelled words from the HTML of the - iframe and will setup the user interface so that it allows correction. -

                          - -

                          The server-side script (spell-check-logic.cgi)

                          - -

                          - Unicode safety — the program is - Unicode safe. HTML entities are expanded into their corresponding - Unicode characters. These characters will be matched as part of the - word passed to Aspell. All texts passed to Aspell are in Unicode - (when appropriate). However, Aspell seems to not support Unicode - yet (thread concerning Aspell and Unicode). - This mean that words containing Unicode - characters that are not in 0..255 are likely to be reported as "mispelled" by Aspell. -

                          - -

                          - Update: though I've never seen it mentioned - anywhere, it looks that Aspell does, in fact, speak - Unicode. Or else, maybe Text::Aspell does - transparent conversion; anyway, this new version of our - SpellChecker plugin is, as tests show so far, fully - Unicode-safe... well, probably the only freeware - Web-based spell-checker which happens to have Unicode support. -

                          - -

                          - The Perl Unicode manual (man perluniintro) states: -

                          - -
                          - - Starting from Perl 5.6.0, Perl has had the capacity to handle Unicode - natively. Perl 5.8.0, however, is the first recommended release for - serious Unicode work. The maintenance release 5.6.1 fixed many of the - problems of the initial Unicode implementation, but for example regular - expressions still do not work with Unicode in 5.6.1. - -
                          - -

                          In other words, do not assume that this script is - Unicode-safe on Perl interpreters older than 5.8.0.

                          - -

                          The following Perl modules are required:

                          - - - -

                          Of these, only Text::Aspell might need to be installed manually. The - others are likely to be available by default in most Perl distributions.

                          - -
                          -
                          Mihai Bazon
                          - - Last modified: Fri Jan 30 19:14:11 EET 2004 - - - + + + + HTMLArea Spell Checker + + + +

                          HTMLArea Spell Checker

                          + +

                          The HTMLArea Spell Checker subsystem consists of the following + files:

                          + +
                            + +
                          • spell-checker.js — the spell checker plugin interface for + HTMLArea
                          • + +
                          • spell-checker-ui.html — the HTML code for the user + interface
                          • + +
                          • spell-checker-ui.js — functionality of the user + interface
                          • + +
                          • spell-checker-logic.cgi — Perl CGI script that checks a text + given through POST for spelling errors
                          • + +
                          • spell-checker-style.css — style for mispelled words
                          • + +
                          • lang/en.js — main language file (English).
                          • + +
                          + +

                          Process overview

                          + +

                          + When an end-user clicks the "spell-check" button in the HTMLArea + editor, a new window is opened with the URL of "spell-check-ui.html". + This window initializes itself with the text found in the editor (uses + window.opener.SpellChecker.editor global variable) and it + submits the text to the server-side script "spell-check-logic.cgi". + The target of the FORM is an inline frame which is used both to + display the text and correcting. +

                          + +

                          + Further, spell-check-logic.cgi calls Aspell for each portion of plain + text found in the given HTML. It rebuilds an HTML file that contains + clear marks of which words are incorrect, along with suggestions for + each of them. This file is then loaded in the inline frame. Upon + loading, a JavaScript function from "spell-check-ui.js" is called. + This function will retrieve all mispelled words from the HTML of the + iframe and will setup the user interface so that it allows correction. +

                          + +

                          The server-side script (spell-check-logic.cgi)

                          + +

                          + Unicode safety — the program is + Unicode safe. HTML entities are expanded into their corresponding + Unicode characters. These characters will be matched as part of the + word passed to Aspell. All texts passed to Aspell are in Unicode + (when appropriate). However, Aspell seems to not support Unicode + yet (thread concerning Aspell and Unicode). + This mean that words containing Unicode + characters that are not in 0..255 are likely to be reported as "mispelled" by Aspell. +

                          + +

                          + Update: though I've never seen it mentioned + anywhere, it looks that Aspell does, in fact, speak + Unicode. Or else, maybe Text::Aspell does + transparent conversion; anyway, this new version of our + SpellChecker plugin is, as tests show so far, fully + Unicode-safe... well, probably the only freeware + Web-based spell-checker which happens to have Unicode support. +

                          + +

                          + The Perl Unicode manual (man perluniintro) states: +

                          + +
                          + + Starting from Perl 5.6.0, Perl has had the capacity to handle Unicode + natively. Perl 5.8.0, however, is the first recommended release for + serious Unicode work. The maintenance release 5.6.1 fixed many of the + problems of the initial Unicode implementation, but for example regular + expressions still do not work with Unicode in 5.6.1. + +
                          + +

                          In other words, do not assume that this script is + Unicode-safe on Perl interpreters older than 5.8.0.

                          + +

                          The following Perl modules are required:

                          + + + +

                          Of these, only Text::Aspell might need to be installed manually. The + others are likely to be available by default in most Perl distributions.

                          + +
                          +
                          Mihai Bazon
                          + + Last modified: Fri Jan 30 19:14:11 EET 2004 + + + Index: openacs-4/packages/acs-templating/www/resources/htmlarea/popups/about.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/htmlarea/popups/about.html,v diff -u -N -r1.3 -r1.3.12.1 --- openacs-4/packages/acs-templating/www/resources/htmlarea/popups/about.html 13 Aug 2007 06:12:48 -0000 1.3 +++ openacs-4/packages/acs-templating/www/resources/htmlarea/popups/about.html 22 Jun 2016 07:48:44 -0000 1.3.12.1 @@ -1,375 +1,375 @@ - - - - - -About HTMLArea - - - - - - - -
                          - - - -
                          - -
                          -
                          - -
                          - -

                          HTMLArea

                          - -

                          A free WYSIWYG editor replacement for <textarea> fields.
                          - For Mozilla 1.3+ (any platform) or Internet Explorer 5.5+ (Windows). -

                          - -

                          © 2002-2004 interactivetools.com, inc.
                          - © 2003-2005 dynarch.com LLC.
                          - All Rights Reserved.

                          - -

                          Project resources

                          - - - -

                          - For download section please see the project page @ SourceForge. -

                          - -
                          - -
                          -

                          Thank you

                          - -

                          - dynarch.com would like to thank the following - companies/persons for their donations to support development of HTMLArea (listed alphabetically): -

                          - - - -

                          Also many thanks to all people at InteractiveTools.com - HTMLArea forums for - contributing translations, feedback, bug reports and fixes.

                          - -

                          - Last but not least, this project wouldn't have existed without - InteractiveTools.com. -

                          - -
                          - -
                          -

                          htmlArea License (based on BSD license)

                          - -

                          © 2002-2004, interactivetools.com, inc.
                          - © 2003-2004 dynarch.com LLC
                          - All rights reserved.

                          - -

                          -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: -

                          - -
                            -
                          1. -Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -
                          2. - -
                          3. -Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. -
                          4. - -
                          5. -Neither the name of interactivetools.com, inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. -
                          6. -
                          - -

                          -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -

                          - -
                          - -
                          -

                          Plugins

                          -
                          -
                          -
                          - -
                          - - -
                          - - -
                          -
                          About
                          Thanks
                          License
                          Plugins
                          - -
                          - -
                          - - - - + + + + + +About HTMLArea + + + + + + + +
                          + + + +
                          + +
                          +
                          + +
                          + +

                          HTMLArea

                          + +

                          A free WYSIWYG editor replacement for <textarea> fields.
                          + For Mozilla 1.3+ (any platform) or Internet Explorer 5.5+ (Windows). +

                          + +

                          © 2002-2004 interactivetools.com, inc.
                          + © 2003-2005 dynarch.com LLC.
                          + All Rights Reserved.

                          + +

                          Project resources

                          + + + +

                          + For download section please see the project page @ SourceForge. +

                          + +
                          + +
                          +

                          Thank you

                          + +

                          + dynarch.com would like to thank the following + companies/persons for their donations to support development of HTMLArea (listed alphabetically): +

                          + + + +

                          Also many thanks to all people at InteractiveTools.com + HTMLArea forums for + contributing translations, feedback, bug reports and fixes.

                          + +

                          + Last but not least, this project wouldn't have existed without + InteractiveTools.com. +

                          + +
                          + +
                          +

                          htmlArea License (based on BSD license)

                          + +

                          © 2002-2004, interactivetools.com, inc.
                          + © 2003-2004 dynarch.com LLC
                          + All rights reserved.

                          + +

                          +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: +

                          + +
                            +
                          1. +Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. +
                          2. + +
                          3. +Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. +
                          4. + +
                          5. +Neither the name of interactivetools.com, inc. nor the names of its +contributors may be used to endorse or promote products derived from this +software without specific prior written permission. +
                          6. +
                          + +

                          +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +

                          + +
                          + +
                          +

                          Plugins

                          +
                          +
                          +
                          + +
                          + + +
                          + + +
                          +
                          About
                          Thanks
                          License
                          Plugins
                          + +
                          + +
                          + + + + Index: openacs-4/packages/acs-templating/www/resources/htmlarea/popups/custom2.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/htmlarea/popups/custom2.html,v diff -u -N -r1.2 -r1.2.18.1 --- openacs-4/packages/acs-templating/www/resources/htmlarea/popups/custom2.html 30 Jan 2005 16:13:32 -0000 1.2 +++ openacs-4/packages/acs-templating/www/resources/htmlarea/popups/custom2.html 22 Jun 2016 07:48:44 -0000 1.2.18.1 @@ -1,69 +1,69 @@ - - - - - Select Phrase - - - - - - - - - -
                          - -
                          - - - - - - - - - - - -
                          - -
                          - + + + + + Select Phrase + + + + + + + + + +
                          + +
                          + + + + + + + + + + + +
                          + +
                          + \ No newline at end of file Index: openacs-4/packages/acs-templating/www/resources/htmlarea/popups/fullscreen.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/htmlarea/popups/fullscreen.html,v diff -u -N -r1.2 -r1.2.18.1 --- openacs-4/packages/acs-templating/www/resources/htmlarea/popups/fullscreen.html 30 Jan 2005 16:13:32 -0000 1.2 +++ openacs-4/packages/acs-templating/www/resources/htmlarea/popups/fullscreen.html 22 Jun 2016 07:48:44 -0000 1.2.18.1 @@ -1,278 +1,278 @@ - - - - - - - Fullscreen HTMLArea - - - - - - - - - - - - - - - - - - - - - -
                          - - - -
                          - - - - - + + + + + + + Fullscreen HTMLArea + + + + + + + + + + + + + + + + + + + + + +
                          + + + +
                          + + + + + Index: openacs-4/packages/acs-templating/www/resources/htmlarea/popups/old_insert_image.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/htmlarea/popups/old_insert_image.html,v diff -u -N -r1.2 -r1.2.18.1 --- openacs-4/packages/acs-templating/www/resources/htmlarea/popups/old_insert_image.html 30 Jan 2005 16:13:32 -0000 1.2 +++ openacs-4/packages/acs-templating/www/resources/htmlarea/popups/old_insert_image.html 22 Jun 2016 07:48:44 -0000 1.2.18.1 @@ -1,411 +1,411 @@ - - - - - - - - - - - - - - -Insert Image - - - - - - - - - - - -
                          Image URL:
                          - - - - - -
                          Alternate Text:
                          - - - - - -
                          - -Layout - -
                          - - - -
                          - -Spacing - -
                          - - - -
                          Alignment:
                          - - - - - -
                          Horizontal:
                          - - - - - -
                          Border Thickness:
                          - - - - - -
                          Vertical:
                          - - - - - - - - - - - - - + + + + + + + + + + + + + + +Insert Image + + + + + + + + + + + +
                          Image URL:
                          + + + + + +
                          Alternate Text:
                          + + + + + +
                          + +Layout + +
                          + + + +
                          + +Spacing + +
                          + + + +
                          Alignment:
                          + + + + + +
                          Horizontal:
                          + + + + + +
                          Border Thickness:
                          + + + + + +
                          Vertical:
                          + + + + + + + + + + + + + \ No newline at end of file Index: openacs-4/packages/acs-templating/www/resources/htmlarea/popups/select_color.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/htmlarea/popups/select_color.html,v diff -u -N -r1.2 -r1.2.18.1 --- openacs-4/packages/acs-templating/www/resources/htmlarea/popups/select_color.html 30 Jan 2005 16:13:32 -0000 1.2 +++ openacs-4/packages/acs-templating/www/resources/htmlarea/popups/select_color.html 22 Jun 2016 07:48:44 -0000 1.2.18.1 @@ -1,694 +1,694 @@ - - - - -Select Color - - - - - - - - - - - - - - - -
                          - - - - - - - - - - - - - -
                          - -
                          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                          - - - - - + + + + +Select Color + + + + + + + + + + + + + + + +
                          + + + + + + + + + + + + + +
                          + +
                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                          + + + + + Index: openacs-4/packages/acs-templating/www/scripts/xinha/file-selector.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/scripts/xinha/file-selector.adp,v diff -u -N -r1.1 -r1.1.14.1 --- openacs-4/packages/acs-templating/www/scripts/xinha/file-selector.adp 18 Aug 2006 19:00:07 -0000 1.1 +++ openacs-4/packages/acs-templating/www/scripts/xinha/file-selector.adp 22 Jun 2016 07:48:44 -0000 1.1.14.1 @@ -103,7 +103,7 @@
                          @HTML_Context@
                          - @HTML_Legend@ + @HTML_Legend@
        • - @HTML_Preview@ + @HTML_Preview@
          - @HTML_UploadTitle@ + @HTML_UploadTitle@ Index: openacs-4/packages/acs-templating/www/scripts/xinha/insert-file-orig.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/scripts/xinha/insert-file-orig.adp,v diff -u -N -r1.1 -r1.1.14.1 --- openacs-4/packages/acs-templating/www/scripts/xinha/insert-file-orig.adp 18 Aug 2006 19:00:07 -0000 1.1 +++ openacs-4/packages/acs-templating/www/scripts/xinha/insert-file-orig.adp 22 Jun 2016 07:48:44 -0000 1.1.14.1 @@ -155,15 +155,15 @@
          - @HTML_Preview@ + @HTML_Preview@
          - @HTML_UploadTitle@ + @HTML_UploadTitle@