Who Am I?
- First name is just the letter J
- When asked what it stands for, I reply Truth, Justice and the American Way
- Married 21 years
- Have a 11 year old daughter
- Own the most ridiculous breed of dog ever created
- Play too many video games
- Live in Charleston SC - Hate Boating, Fishing and the Beach
Ridiculous Lay-abouts
Customizing BBIS from the Front End
Standard Page
- CSS
- HTML pages
- Templated pages
- Images
- JavaScript
- Content Elements - Recurring
- Content Elements - Unique
- Maybe even cat 'types'
BBIS
- Stylesheets
- Layouts/Templates/Pages
- Layouts
- Images
- Files
- Parts placed on Templates
- Parts placed on individual Pages
- CRM is the DB
BBIS Quick Tour
[Redacted Mighty Mouse Photo]
Redacted because I'm old and no longer relevant, not due to copyright - which honestly probably lapsed in 1968
UFT Part
- Unformatted Text part I just started calling UFT to see if it catches on
- Garbage In - Garbage Out
- To the point you can destroy your site with bad code.
Dev Reference
http://developer.blackbaud.com/bbis/reference/
What You Get
- Code Table
- Country and State
- Image
- User (can use email token)
- Consent (NEW IN SP15!)
- Donation (Important for ADF)
- Query - The Big One
The Code
var queryService = new BLACKBAUD.api.QueryService();
var designationQueryId = "5b2b7fc4-c932-4a7b-ae8e-fdb4a83de363";
queryService.getResults(BBI.Defaults.designationQueryId, function (data) {
var fields = data.Fields; // Column headers
var rows = data.Rows; // Designation values
var fieldArray = []; // New array to store key value pairs for Field Data
// Loop through headers to create key value index
$.each(fields, function (key, value) {
fieldArray[value.Name] = key;
});
$.each(rows, function () {
var values = this.Values;
var designationID = values[fieldArray['System record ID']];
var designationName = values[fieldArray['Public name']];
$('#designationAreaDropdown').append('<option value="' + designationID + '">'
+ designationName + '</option>');
});
});
BLACKBAUD.api.customPartEditor.onSave
Triggered when user hits the save button.
BLACKBAUD.api.customPartEditor.settings
The bridge between edit and display.
The Editor
The Editor
Saves your "settings".
The Display
Returns your "settings".
And much the same concept as a .NET part, but it's all JavaScript...
and HTML...
and CSS...
Example
https://bbis5740pswebdev1.blackbaudhosting.com/cms/contentpartadmineditor/id/10004?cid=10004&bm=1167851440
[Insert Funny Anecdote]
It's not actually funny but the people who just downloaded the slide deck don't need to know.
Let's Do This
https://bbis5740pswebdev1.blackbaudhosting.com/
Questions?
Front-End and Built in Customization Tools in BBIS
By J Owen Schultz
Front-End and Built in Customization Tools in BBIS
- 457