J Schultz
J Schultz
Blackbaud Developer Team
Unchains the donation form from its table, allows dynamic content, allows cross domain calls, and gives us access to our CRM data.
Mobile Elvis
Tablet Elvis
Desktop Elvis
Remember the words of Uncle Ben
Or this Uncle Ben
"Only Rice is Instant"
Sacrificing ease of configuration with flexibility.
With BBIS we can add multiple stylesheets just as we would with in a standard hosted website.
We can also specify stylesheets specifically for mobile or desktop... but we don't need to do that when we can use media queries.
@media only screen and /*!YUI Compressor */ (min-width: 48em){
.medium-1{width:8.33333%}
.medium-2{width:16.66667%}
.medium-3{width:25%}
.medium-4{width:33.33333%}
.medium-5{width:41.66667%}
.medium-6{width:50%}
}
/*!YUI Compressor */
Complex media queries do not play well with the BBIS CSS compressor, so we add a piece of code that allows our media query to be ignored by the compressor.
As with our CSS we can add JS libraries, plugins and custom code the same way we would in a standard hosted environment. Using the Files section we can create a JS folder and place our files there, then include them at the layout level for all our pages.
and the Donation API
var bbisURL = BLACKBAUD.api.pageInformation.rootPath;
var donationService = new BLACKBAUD.api.DonationService(partId,
{
url: bbisURL,
crossDomain: true
});
donationService.createDonation(donation, donationSuccess, donationFail);
donationSuccess and donationFail are our callback functions for those respective events.
{
"Donation":{
"Donor":{ //Donor Data
"Address":{
"City":"Columbia",
"Country":"United States",
"PostalCode":"29212",
"State":"SC",
"StreetAddress":"123 Main St."
},
"EmailAddress":"john.doe@blackbaud.com",
"FirstName":"John",
"LastName":"Doe",
"Phone":"555-555-5555",
"Title":"Mr."
},
"Gift":{ //Gift Data
"Designations":[ //Designations are an array of ID and Amount
{
"Amount":5,
"DesignationId":"3439a5c7-9977-4f9c-ba11-fadfb8144d35"
}
],
"FinderNumber":0,
"IsAnonymous":false,
"PaymentMethod":1,
"Comments":"Gift comments here.",
"CreateGiftAidDeclaration":false,
"Attributes":[ //Custom Attributes are an array of ID and Amount
{
"AttributeId":"BD18B3FD-B382-4183-A415-8F84B1E0E411",
"Value":"Volunteer;Member;Alumni"
},
{
"AttributeId":"3607C77D-19DC-4EE0-A0CD-A352762A8EF0",
"Value":"1985"
}
],
"Recurrence":{ //Optional Recurrence
"DayOfMonth":26,
"DayOfWeek":null,
"EndDate":null,
"Frequency":2,
"Month":null,
"StartDate":"\/Date(1337227200000-0400)\/"
},
"Tribute":{ //Optional Tribute
"Acknowledgee":{
"AddressLines":"123 Sunset ln.",
"City":"Charleston",
"Country":"USA",
"Email":"email@address.com",
"FirstName":"Joe",
"LastName":"Schmo",
"Phone":"123-123-1234",
"PostalCode":"29482",
"State":"SC"
},
"TributeDefinition":{
"Description":"New tribute",
"FirstName":"John",
"LastName":"Hancock",
"Type":"Tribute"
},
"TributeId":null
}
},
"Id":"853f96be-bf08-4828-aefa-326a06e48d31", //Created by BBIS/BBSP
"Origin":{
"AppealId":"C3B20FD8-6A81-451E-BF78-D195E82B4CBF",
"PageId":784,
"PageName":"Sample Page"
},
"TransactionStatus":1
},
"BBSPCheckoutUri":" https://payments.blackbaud.com/Pages/Index.aspx?t=853f96be-bf08-4828-aefa-326a06e48d31"
}
The Donation API Object
BLACKBAUD.api.DonationService(partId, {url: bbisURL, crossDomain: true});
That's correct. You can call the Donation Service from ANY DOMAIN.
You can just as easily process this transaction in Drupal or a Wordpress site! You heard that right.
Crazy trick that works with BBNC too...
BLACKBAUD.netcommunity.Cart.AddDonationToCart(amount, designationID, description);
If you know the GUID of the fund to apply it to, you can directly add funds to a shopping cart and provide your own description/name.
With the Donation API and the Advanced Donation form we can reduce the number of 'taps'
TCU Calendar System - (Behind Firewall)
Grabs events from CRM based on the CRM query created and displays them on a BBIS page.
Links from record search automatically add the GUID to the URL, which is then digested by the Record Search part to display the correct details.
This is all dynamic data straight from CRM.
A contextual record search part
With the Query API, we aren't tied to using the Parts. We can create our own JavaScript and HTML solution.
Maybe I didn't say it enough.
Just like the Donation API - the Query API is CROSS DOMAIN.
A Part that allows us to create engaging and media rich content pieces that our content editors can’t destroy.
Like they do.
Every time.
Its beauty is, with a little bit of extra work at the beginning, we can create a part that is virtually indistinguishable from a standard BBIS part.
And we can use all the tools we've already covered.
For instance we can quickly create some code to handle callout boxes.
And create complex styles that can't be destroyed or misunderstood.
That's just the beginning.
We can just as easily create a slideshow that our content editors can deploy, reuse, and edit as simply as they do standard content
No reason to reinvent the wheel here.
Use your favorite slideshow plugin.
Or create new widgets.
Like a social media widget.
I always wonder how social "Social" media really is...
Giving out a free mini donation form
custom content part.
Jacee Brown
WEB STRATEGY MANAGER
Institutional Advancement
COLLEGE of CHARLESTON