Customer Portal

Custom RN Ajax Success Handlers

The RightNow Customer Portal website solution heavily utilizes JavaScript and AJAX features as part of its core functionality. While these features are very powerful, some otherwise simple development tasks become exponentially more complicated. One category of customizations I've historically struggled with was performing custom logic after a form submit has occurred. I've run into this type of customization many times; some projects need to dynamically redirect to a different page than the default confirmation page; others want to send some custom tracking to Google Analytics.

Lazy Loading Object Dumper for CPHP

This is a helpful method I find myself using frequently when debugging Connect for PHP code. It will recursively load a CPHP object's properties and return them in a nested array for easy logging.

Passing search filters to multiple reports on a page with a sidestory of page name lessons learned (i.e. what not to name your Customer Portal page)

I recently learned a hard lesson about page names in Customer Portal. In my case, I was building a report search page that contained a bunch of filters and a Grid widget that showed the results of my report search. Not thinking twice about it, I named my page "search.php" so that its URL would be https://subdomain.custhelp.com/app/search.

Mobile Client Considerations

More and more often, clients look for a way to integrate their mobile and web applications with their RightNow instance. The ability to connect end-users directly to the support infrastructure is powerful, but the standard tools RightNow provides don't quite fit the bill.

Determining Environment at Runtime

When creating customizations in Customer Portal (CP3), it is important to remember that your code needs to run not only in Production, but should also be engineered to run in a "Clone" environment without modification. This is especially important with integrations to external systems. You wouldn't want non-production data being passed to an external production system.

Useful Constants in Customer Portal (CP3)

The Customer Portal framework has a very long list of defined constants somewhere in the 47,000 range. Most of these are standard PHP constants or ID's for Config and Message Bases, but inside of this list are a handful of very useful constants that can really help with your Customer Portal development efforts.

Parsing XML in RightNow PHP

RightNow's PHP build is different than most PHP builds you've encountered. It excludes useful extensions that are assumed to be available by most developers including:

  • SOAP extensions
  • Multibyte String extensions
  • XML Parsing extensions (SimpleXML)

Note: Expat is available in most builds, but it is a very "special" XML library that is event based instead of tree/DOM based. I personally would rather feed my fingertips to the wolverines than use it.

Using cURL in Customer Portal (CP3)

It is possible with most Customer Portal sites to make outbound HTTPS/HTTP calls to external services using the PHP cURL library. CURL is installed and available as a PHP extension that can be dynamically loaded in your scripts.

Customizing the Knowledge Syndication widget

I've observed a couple of Knowledge Syndication widget questions popping up lately, so I thought I'd do a quick demo of how you can customize the behavior of the widget.

Customization via Config Options

As always, you can use the standard configuration options during widget instantiation. These are well defined in the CP admin panel and can be found a the following address (substitute in your domain).

https://interface.custhelp.com/ci/tags/syndicated_widgets/standard/KnowledgeSyndication

Registering Hook Handlers for a Subset of Pages

I've found on recent projects that I want to use the Customer Portal hook system to register hook handlers, but want to restrict the execution to only certain pages (or triggered by other conditions). Turns out this is very easy to do as hook handlers are registered in the config/hooks.php file using very standard PHP code. Because there is no DSL (Domain Specific Language) you can use any other PHP statement you desire in the config/hooks.php file and it will be evaluated and executed whenever a request is made to the Customer Portal.

Pages

Zircon - This is a contributing Drupal Theme
Design by WeebPal.