CPHA Annual Conference
Preparing abstracts and presentations
Presentations and abstracts are kept in the resources database (MySQL) and accessed by programs (PHP) kept at http://resources.cpha.ca/CPHA/Conf/Code. NOTE: There are many inconsistencies in how the conference abstract and presentation data are kept in the database, due to changes in requirements every year. Some rethinking and cleaning up is advised!Database tables and fields
The tabes used are:- Main: This table contains one record for every presentation, and is the main information source for the presentation.
-
Details: This table contains the abstract in earlier conferences.
- Persons: This is the table in which all person's names are fully entered. There is only one entry per person, regardless of how many presentations (or other things, e.g., publications) the person is making (and regardless of the year of the publication)
- AuthorRels: Links the person(s) to the presentation. Tyhe sequence in which the authors/presenters are listed is also kept here.
- URIrels: Contains the links to the abstracts and presentations. There can be several for each presentation. Contains the ID in Main.
-
Times: Contains one entry for every time slot in the conference that is used for a presentation. Date and time is in two languages.
- Sessions: Contains the information for each session in which presentations are made. This includes the time slot, the type of session, the room assigned and the name in two languages.
The table keys are:
-
Main: ID (Ayy-###, where yy is the 2-digit year)
-
Persons: PersonKey (integer)
- Times: SlotID (integer)
- Sessions: SessionNo (character 6)
As well, the following fields contain the 4-digit year of the conference, which is often required to uniquely select an item: Main.Unit, Times.Unit and Sessions.Unit, and must be used to uniquely identify records in Times and Sessions.
-
Details.ID ties the abstract to the record in
Main.
- AuthorRels.MainKey and AuthorRels.AuthorKey ties the authors/presenters to the record in Main.
- Main.SessionNo and Sessions.SessionNo ties the session to the record in Main.
-
Sessions.SlotID and
Times.SlotID ties the sessions to a time slot.
The following fields are used to sequence information in displays:
- Main.Sequence: order of presentations within a session.
- Times.SlotID and Sessions.SessionNo: Order in which sessions are listed
-
AuthorRels.Sequence: Order in which authors and presenters are listed with a presentation.
| table name | field name | contents |
| Main | ID | A unique ID given to any one presenter's session. format: Ayy-nnn, where yy is the 2-digit year, and nn is a 3-digit unique number. Starting in 2009, when EventsPro was first used, nnn matches the EventsPro field SPDOC.Speak_ID (Speakers ID), which EventsPro also uses to name the abstract files it creates. |
| BelongsTo | Always set to Conf | |
| Unit | Always set to the 4-digit year | |
| TitleE | English title if present. Use entities instead of special characters. | |
| TitleF | French title if present. Use entities instead of special characters. | |
| Unit | Set to the four-digit year of the conference | |
| Status | Always set to O | |
| ShowLang | Always set to B | |
| Lang | Set to E for English title, F for French title | |
| SessionNo | Set to the key value in table Sessions when this item is assigned to a session | |
| TitleESort | Set to the upper case characters of the value in field TitleE. Accented characters and entities are replaced with appropriate letters. Leading English articles and leading special characters are removed. | |
| TitleFSort | Set to the upper case characters of the value in field TitleF. Accented characters and entities are replaced with appropriate letters. Leading French articles and leading special characters are removed. | |
| Sequence | An integer identifying the order in which this presentation is to be displayed in relation to others in the same session. Otherwise, set to 1. | |
| Persons | PersonKey | A unique integer ID given to the presenter. Duplicate persons can be removed from the database using program DuplicateCheck.php. |
| LastName | The person's last or family name. Use entities instead of special characters. | |
| OtherNames | Other names and or initials, if known. Use entities instead of special characters. | |
| NameSort | Upper case version of name, for sorting and searching purposes. Accented characters and entities are replaced with appropriate letters. If both LastName and OtherNames fields contain values, this field is formed using "LastName, OtherNames". | |
| Honorific | Optionally contains such values as 'Dr', 'Dre', 'Ms.', etc., in the language of the person. | |
| AuthorRels | AuthorKey | The key of the record describing the presenter in table Persons |
| MainKey | The key of the record describing the presentation in table Main. | |
| Sequence | An integer identifying the order in which this presenter is to be displayed with the others when there are multiple persons associated with one presentation. Otherwise, set to 1. | |
| URIrels | MainKey | The key of the record describing the presentation in table Main. |
| URIType | Always set to Conf | |
| ItemType | Set to 'PDF', 'PPT', 'DOC', etc. | |
| URI | Set to the item's filename. This is always lower case, and consists of:
|
|
| Sequence | An integer identifying the order in which this presentation file is to be displayed with the others when there are multiple files associated with one presentation. Otherwise, set to 1. | |
| Times | SlotID | The key of the record describing the time slot. Typically assigned:
|
| Unit | Set to the four-digit year of the conference | |
| DateandTimeEn | The date and time, as it is to be displayed on the website in English | |
| DateandTimeFr | The date and time, as it is to be displayed on the website in French | |
| Sessions | SessionNo | The key of the record describing the session. Typically assigned:
|
| Unit | Set to the four-digit year of the conference | |
| Type | set to the type of presentation:
|
|
| Session | In spite of its original intention, this field is used for the sequence, when listing presentations (there are occassionally more than one file to a presentation. Otherwise, set to 1. | |
| SessionNameEn | The name of the session, as it is to be displayed on the website in English | |
| SessionNameFr | The name of the session, as it is to be displayed on the website in French | |
| SlotID | The key of the record in table Times describing the time slot. | |
| Room | The room number |
|
| SortNameE | Value in SessionNameEn converted to upper case |
|
| SortNameF | Value in SessionNameFr converted to upper case |
Data retrieved from the EventsPro database
A spreadsheet, presentations.csv, is created by running an EventsPro utility report (EventsPro » Utilities » Speakers » Export Speaker's Data - Ed Brandon) and stored with the conference data in resources (http://resources.cpha.ca/CPHA/Conf/Data/presentations.csv). This CSV file is manually updated to include- the language of the abstract
- the language of the presentation
- the language of the title in the program
- All special characters are converted to entities
- non-breaking space entities are inserted as appropriate (e.g. before ":" in French titles)
- Single and double apostrophes are converted to appropriate left and right entities
- Titles entered in all upper case are converted to normal title mode capitalization, based on language.
- Session codes are converted to 2 characters and one digit as required, to match the codes in table Sessions
Programs used to load the data (pre conference)
These programs reside in http://resources.cpha.ca/CPHA/Conf/Code.| program name | purpose |
| Build2009_A.php | Build the entries for the oral abstract presentations in tables Times and Sessions. The data is hard-coded in the program. SessionNo values must match those used in the CSV file described above. |
| Build2009_B.php | Build the entries for the oral abstract presentations in tables Main, URIrels, Persons, and AuthorRels. The data is obtained from the CSV file (http://resources.cpha.ca/CPHA/Conf/Data/presentations.csv). The program ignores the first record (column headings), and all records without a session code (abstracts not approved) |
| Build2009_C.php | Build the entries for the planned presentations in table Sessions. The data is hard-coded in the program. The values for table Times are used from those built in program Build_A.php, and therefore not handled here. |
| Build2009_D.php | Build the entries for the planned presentations in tables Persons, AuthorRels, URIrels and Main. The data is hard-coded in the program. |
| Build2009_E.php | Updates the data in table URIrels. The data is obtained from what is already in the database and a DOS-level directory listing file, http://resources.cpha.ca/CPHA/Conf/Data/dir.txt, described below. |
| Build2009_F.php | Build the entries for the plenary presentations in tables Sessions, Persons, AuthorRels, URIrels and Main. The data is hard-coded in the program. |
| Build2009_Delete.php | Delete all records created by the above 6 programs, especially during testing. NOTE: This program does not delete records from tables Persons, and AuthorRels. See notes below under Complete list of steps in preparing the data to delete these. |
Loading the presentation and abstract files
It is best to first prepare all the files (PowerPoint, PDF, etc.) in one directory on your hard drive. This directory should contain nothing else.- Obtain the abstract presentation files from the EventsPro folder containing the PDF versions.
- The files are renamed as necessary, to conform to the naming conventions:
- for presentations: the value of MainKey in lower case, followed by a one-letter language code, followed by the file type extension in lower case
- for abstracts: the value of MainKey in lower case, followed by 'a', followed by a one-letter language code, followed by the file type extension in lower case
- e: English
- f: French
- b: bilingual
- m: mixed (some in English, some in French, but nothing in both. See example)
- To help with locating French, mixed and bilingual presentations, use Windows Explorer to search for é, è and/or à. The files so located should be checked to ensure that they are not English presentations containing French names of persons or institutions.
- After all the files are properly named, a DOS DIR command is run, with the resultant file called dir.txt. This file is edited to remove all lines that do not describe the presentation and abstract files, and then loaded into http://resources.cpha.ca/CPHA/Conf/Data/dir.txt
- The files (PowerPoint, PDF, etc.) are loaded into http://resources.cpha.ca/CPHA/Conf/Data.
Complete list of steps in preparing the data
Use these steps iteratively, as required, until everything is loaded correctly.- Edit the hard-coded session information as required in programs Build2009_A.php, Build2009_C.php, Build2009_D.php and Build2009_F.php
- Load the presentation and abstract files, renamed as necessary, into http://resources.cpha.ca/CPHA/Conf/Data, as described above.
- obtain the presentations.csv file from EventsPro/Utilities, edit it as required (described above), and load it into http://resources.cpha.ca/CPHA/Conf/Data
- obtain the dir.txt directory listing file, edit it as required, and load it into http://resources.cpha.ca/CPHA/Conf/Data
- Edit programs
Build2009_A.php,
Build2009_B.php,
Build2009_C.php,
Build2009_D.php,
Build2009_E.php,
Build2009_F.php and
Build2009_Delete.php, to reference the test or production databases as required:
- activate the appropriate include file, and comment out the other, to access the desired database. The PHP statements are always found under "// Connect to the database".
- Set variable $Year to the 4-digit year of the conference.
- The programs that update the Persons table, ( Build2009_B.php and Build2009_F.php), add them using the next available key. This value is kept in variable $AuthorKey in these programs. The next available key is obtained after the connection is made to the database. During testing, it is convenient to set these to high values (9xxx), and this is done in a statement close behind that in which the next available key is obtained. Comment out this statement if going to production, otherwise ensure this statement is active in these programs.
- Delete the records created in the database if this is a rerun. Proceed as follows:
- Delete all records in table Persons created for this conference in the previous run. Check table URIrels, looking for all entries with MainKey starting with "Axx-", where xx is the low-order 2 digits of the conference year.
- Run program Build2009_Delete.php to delete all other records
- Run programs Build2009_A.php, Build2009_B.php, Build2009_C.php, Build2009_D.php, Build2009_E.php and Build2009_F.php, in this order, to (re)load the data.
Displaying abstracts and presentations
The following programs are used to display the presentations and abstracts (post conference). The inconsistencies referenced above apply here too, and a review of how these are displayed would be useful. The 2009 display programs are derived from others used with 2007 and 2008. e.g. Presenations_2009_e.php is derived from Presentations_e.php.Main Programs
These programs reside in http://resources.cpha.ca/CPHA/Conf/Code.| program name | purpose | where called |
| Presentations_2009_e.php, Presentations_2009_f.php |
Used as the main display for the presentations. Users can search by author, or access presentations by session or by key priority area. | external reference plugin on conference site's "presentations" page. |
| MainPresentations_2009_e.php, MainPresentations_2009_f.php |
Displays the plenary and planned (thematic) presentations. There are no abstracts for these. | Presentations_2009_e.php, Presentations_2009_f.php |
| SessionPresentations_2009_e.php, SessionPresentations_2009_f.php |
Lists the oral abstract presentations for a particular session. | MainPresentations_2009_e.php, MainPresentations_2009_f.php |
| PosterIndex_e.php, PosterIndex_f.php |
Lists and links to the poster presentation abstracts, by date. NOT USED IN 2009. | Presentations_e.php, Presentations_f.php |
Parameters passed to and between programs
| Passed parameter | Program variable | Description |
| y | $Year | 4-digit year |
| l | $LangUser | The language of display |
| name | $Name | name being serached for by end user, otherwise an empty string. |
| order | $Order | either stream' or 'time'. Is the unit of display for sessions. Stream = key priority area or conference track. Time = One time slot. Used with next item. |
| session | $Session | If $Order=='stream', this is the code of the conference stream. $Order=='time', this is the time slot code. |
| r | $Rooms | true or false. Display room information. |
| f | $Form | The format in which one presentation is to be displayed. |
| Ian | $Ian | If true, format items for Ian to use in preparing the final program. |
Conference-specific functions called by the programs
These functions reside in http://resources.cpha.ca/CPHA/Conf/includes.| code name | purpose | where called |
| OneItemLinks_2009_e.txt, OneItemLinks_2009_f.txt | Format the links to the abstract and presentation files. | Presentations_2009_e.php, Presentations_2009_f.php, MainPresentations_2009_e.php, MainPresentations_2009_f.php, SessionPresentations_2009_e.php, SessionPresentations_2009_f.php |
| Format_2009_e.txt, Format_2009_f.txt | Format one presentation item, with link | Presentations_2009_e.php, Presentations_2009_f.php, MainPresentations_2009_e.php, MainPresentations_2009_f.php, SessionPresentations_2009_e.php, SessionPresentations_2009_f.php |
| Conf_head_2009_e.txt, Conf_head_2009_f.txt | web page header info | Presentations_2009_e.php, Presentations_2009_f.php, MainPresentations_2009_e.php, MainPresentations_2009_f.php, SessionPresentations_2009_e.php, SessionPresentations_2009_f.php |
| Authors.txt | Format one presenter | OneItemLinks_2009_e.txt, OneItemLinks_2009_f.txt |
CPHA generic functions called by the programs
These functions reside in http://resources.cpha.ca/_shared/includes.| code name | purpose | where called |
| open_db.txt | Open the MySQL database. This code also includes all functions to access the data via ODBC SQL statement calls. | Presentations_2009_e.php, Presentations_2009_f.php, MainPresentations_2009_e.php, MainPresentations_2009_f.php, SessionPresentations_2009_e.php, SessionPresentations_2009_f.php |
| ToUpper.txt | Use to convert the user's typed last name to upper case to locate it. | Presentations_2009_e.php, Presentations_2009_f.php |
| GetReaders_e.txt, GetReaders_f.txt | Used to display the reader information at the bottom of a page (get Adobe, etc.) | Presentations_2009_e.php, Presentations_2009_f.php, MainPresentations_2009_e.php, MainPresentations_2009_f.php, SessionPresentations_2009_e.php, SessionPresentations_2009_f.php |
| PageFoot.txt | final HTML code for the web page. | Presentations_2009_e.php, Presentations_2009_f.php, MainPresentations_2009_e.php, MainPresentations_2009_f.php, SessionPresentations_2009_e.php, SessionPresentations_2009_f.php |
