Customer Portal

Get Involved. Join the Conversation.


  • monique perkins

    Are you using version 8.3 or are you using a CP? (8.8 and later?)

    If you are on 8.3 you might want to post this in the comminuty forums instead of if CP deveolpment.


    If you are on CP then you need to change your url to the correct url format -  action=""

    or whatever your CP customized chat landing page is.


    If you are on 8.3 - 

    live_param.php is also a customized file you have - so you might want to make sure is in the upgrade site and that your action is pointed to the correct url

  • Ernie Turner
    I grabbed the code you pasted and it seemed to work fine. Are you sure you're in development mode after you made the changes?
  • jrinke

    I had already tried that and it didn't work.  In my code, it is line 76:

    <a id="GiveFeedback_<?=$info['w_id'];?>" class="button <?=$GiveFeedbackClass;?>" href="javascript&colonvoid(0);" <?=tabIndex($attrs['tabindex'], 1);?>>Request Login</a>


    I replaced #rn:msg:GIVE_FEEDBACK_LBL# with Request Login.  I also found a reference to GIVE_FEEDBACK_LBL on line 65, which is also a button.  I replaced <?=msg_get_rnw(GIVE_FEEDBACK_LBL);?> with Request Login but that had no affect.


    I'm sure I am missing something very simple -- do you see it?


  • Ernie Turner

    In the view you should see the GIVE_FEEDBACK_LBL repeated within an <a> tag. It is displayed in the format #rn:msg:GIVE_FEEDBACK_LBL#, so search for that and modify it to be whatever you want.


    Hope that helps.

  • HT



    Server interruption will be silent and the handler function will not be called. You need to set a timer for the server response and act accordingly. I haven tested following code.  But, it enables you to intercept when the server doesn't respond and/or result set is empty. Make sure that you play with the time out values and find out a reasonable timeout value for your server.


    RNTFeed.JSONCall = function(url, id, page_next){

    //Change 1: new variable
    var statusId = id+"SUCCESS"

    var handler = RNTFeed.readers[id];
    var head = document.getElementsByTagName("head").item(0);
    var script = document.createElement("script");
    RNTFeed.readers[id].onCompleteJSON = function (channel) {

    Change 2: Results 0

    if(channel.item.length == 0){
    //Inform your customer that no results found: raise an event. or invoke a method.

    if(page_next == 1) =;
    else = channel;
    handler.session =;

    //Change 3: The server returned
    window[statusId] = true;
    return true;
    script.setAttribute("type", "text/javascript");
    script.setAttribute("src", url+"/callback/RNTFeed.readers["+id+"].onCompleteJSON");

    //Change 4: Set timer. Make sure you play with the timer and find out best timeout seconds for your server
    setTimeout(function() {
    if (!window[statusId]) {
    //NO RESPONSE: You can inform your user that server is not responding
    }, 1000);






  • Leif Wickland
    If you're going to utilize a CAPTCHA, I recommend reCAPTCHA from Carnegie Melon University. It is a free serve that not only provides a strong CAPTCHA, but also helps researchers improve OCR. A PHP library for reCAPTCHA is available and could be incorporated into a widget.

  • Douglas Hensel

    Would this also work if our connection to RightNow somehow got interuppted?


    My company is all about planning for the worst case scenarioes, which I can't really disagree with.  They want to make sure if our syndication widget goes down we'll be able to generate some code that would effectively say, "temporarily out of service: please check back later."

  • January Fredericks
    Thank you for the detailed information. I'll pass it along.
  • monique perkins

    As far as I know he just changed the parameters to correct entries that matched validation and thepassthrough password.  The url for cp is also different. 


    1 - the url should be

    'http://<company>' + encoded string

    where the terms after redirect/ is the  page you want to got to - ie answers/list


    2 - the code to generate the correct url 


    $params['p_userid'] = 'joe' $params['p_passwd'] = 's8df6tsdf76tsd'; $params['p_email'] = ''; $params['p_li_passwd'] = 'mymyseclipasswd'; // iterate through array and url encode + build queryparam string foreach ($params as $key => $value) { $params_str .= $key.'='.urlencode($value).'&'; } // declare base redirect url $redirect_url = 'http://<some company><some company>.cfg/php/enduser/entry.php?p_li='; // append encoded query param string (substr to remove trailing amper) $redirect_url .= base64_encode(strtr(substr($params_str, 0, -1), array('+' => '_', '/' => '~', '=' => '*')));


    3 - make sure your value for p_li_passwd matches the config in MYSEC_EXT_LOGIN_URL


    That should be all you need. That will log in the user if they exist and   If you are stil lhaving problems let me know what you are using for the params.



  • chris fellows

    Hi January,


    I haven't seen a case where a CAPTCHA solution was used on the email answer functionality.  However, I worked with a customer that implemented this on the Ask A Question page using the classic PHP pages.  I have played around with building a CAPTCHA widget for the Customer Portal Ask page using the solution from reCAPTCHA.  To get this to work you would have to build two widgets, one for the CAPTCHA area on the page, and one for a custom submit button.  In the submit button widget, you would have to do a custom Ajax request and use a model to query the reCAPTCHA service.  You can then display an error message back to the page before the submittal of the form occurs.   To add this functionality to the Email Link form, you could just add the CAPTCHA widget and call the Ajax function from the logic.js file.    Hope this helps!



  • anne
    Well, I've the same problems to get PTA working. I'm curious to know about what you did to make it work.
  • Ernie Turner
    Currently there is no way for you to create your own message base strings. The only option is to edit the existing messagebases, which is probably the editing documentation you are talking about. This is a feature we are looking into and will hopefully have a solution soon.
  • Ernie Turner

    There are a number of problems with your JavaScript code syntax. First off, JavaScript function names cannot contain the equal or quote characters. Second, you also have your brackets mismatched as the event handler function needs to be defined within the DynamicForm() function. This is probably closer to what you want. I would recommend using a JavaScript code editor since it will tell you that the syntax is incorrect.



    function DynamicForm(data) { this.init = function() {

    evt_menu_filter_get_update.subscribe(onCustomFieldUpdate); } function onCustomFieldUpdate(type, args) { var evtObj = args[0]; if( == "Yes") document.getElementById("DynamicForm").style.display = 'block'; else document.getElementById("DynamicForm").style.display = 'none'; } }


    Based on what I think you're trying to do, even after the code syntax is correct, I'm pretty sure this isn't going to do what you want. I'm not exactly sure why you are subscribing to the "evt_menu_filter_get_update" event, but that gets fired when you select a product or category from the dropdown which I don't think is what you want.


    Currently there isn't an event that is fired when the value on a custom field changes. This means that there isn't going to be an event thats fired when a user modifies custom field 25. In order to do that you're going to have to create a custom widget and have it fire the event yourself.


  • Erica (Leep) Anderson

    Hi BJ,


    Thanks for your participation in the Developer Community!  When you're posting code, you'll find the forum HTML editor (look for the clipboard icon with the 'c' in a gray box to insert code) allows you to designate what part of your forum post is code.  By clicking on this icon, your code will be clearly designated with a gray box, and your code won't be peppered with smiley faces. :)  



  • cjamerlan

    i did a search for "RightNow Integration" but did not come up with results that were desireable.  I have the integration manual PDF, but there is no mention of documentation regarding the logout feature for PTA.  Would it be possible to send it to me via email?  If so, please send to


    Thank you!