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