Using hooks to detect a Web session

You can use the predefined _CQ_WEB_SESSION session variable to detect whether a user is on a Web browser or an installed HCL Compass client. This allows you to take appropriate action if you have not adjusted your schema to match the functionality available on the Web. For example, when you detect a Web session in a function that creates a message box or a new window, you can call code modified for the Web environment or exit the function.

  • Web session detection in VBScript:
    dim currDBSession                 ' Current Db session
    set currDBSession = GetSession
    ' Test for existence of the web session variable
    if currDBSession.HasValue ("_CQ_WEB_SESSION") then
       ' Either exit or do something else
    end if
    
  • Web session detection in Perl:
    my $currDBSession;   # Current Db session
    $currDBSession = $entity->GetSession();
    # Test for existence of the web session variable
    if ( $currDBSession->HasValue ("_CQ_WEB_SESSION") {
       # Either exit or do something else
       }
    

Functions, such as a message box, that call other Windows applications cause the Web client to freeze. For example, if a message box function runs on a Web server, the message box pops up on the server's screen. Because the user cannot click OK on the server, the client is left waiting. This requires you to reboot the Web server. If record scripts return a string value, that string is displayed to the user.