Load banner/campaign categories tree

This is a sample code of how to load all campaigns categories:
 
<?php
$papURL = "http://URL_TO_PostAffiliatePro"; //URL of your Post Affiliate Pro installation without any trailing slash
$merchantUsername = "merchant@example.com"; //merchant username
$merchantPassword = "123456"; //merchant password

//your PapApi.class.php file can be downloaded in the merchant panel:
//Tools>Integration>API Integration>Download PAP API
include_once ("PapApi.class.php"); //this include assumes the PapApi.class.php is in the same dir as this script

$session = new Pap_Api_Session($papURL."/scripts/server.php");   
//$session->setDebug(); 

//login as merchant
if(!@$session->login($merchantUsername, $merchantPassword)) { 
  die ("Cannot login. Message: ".$session->getMessage());
}

$request = new Gpf_Rpc_Request('Pap_Features_CampaignsCategories_TreePanel', 'loadTree', $session);

//$request->addParam("addDetails", "Y"); // use this only if you want to load also all campaign IDs in categories, this parameter is available since: 5.5.52.2

try {
  $request->sendNow();
} catch(Exception $e) {
  die("API call error: ".$e->getMessage());
}

$response = $request->getStdResponse();

$categories = json_decode($response[1][1]);

foreach ($categories as $category) {
  displayCategoryItem($category);
}


function displayCategoryItem($category, $parentCategoryCode = null) {
    echo '<br>code: '.$category->data->code;
    if ($parentCategoryCode != null) {
        echo ' (parent category: '.$parentCategoryCode.') ';
    }
    echo ', name: '.$category->data->name;
    //echo ', campaignids: '.$category->data->campaignids; //available only with parameter 'addDetails'
    foreach ($category->items as $item) {
        displayCategoryItem($item, $category->data->code);
    }    
}

?>
This is a sample code of how to load all banner categories:
 
<?php
$papURL = "http://URL_TO_PostAffiliatePro"; //URL of your Post Affiliate Pro installation without any trailing slash
$merchantUsername = "merchant@example.com"; //merchant username
$merchantPassword = "123456"; //merchant password

//your PapApi.class.php file can be downloaded in the merchant panel:
//Tools>Integration>API Integration>Download PAP API
include_once ("PapApi.class.php"); //this include assumes the PapApi.class.php is in the same dir as this script

$session = new Pap_Api_Session($papURL."/scripts/server.php");   
//$session->setDebug(); 

//login as merchant
if(!@$session->login($merchantUsername, $merchantPassword)) { 
  die ("Cannot login. Message: ".$session->getMessage());
}

$request = new Gpf_Rpc_Request('Pap_Features_BannersCategories_TreePanel', 'loadTree', $session);

//$request->addParam("addDetails", "Y"); // use this only if you want to load also all banner IDs in categories, this parameter is available since: 5.5.52.2

try {
  $request->sendNow();
} catch(Exception $e) {
  die("API call error: ".$e->getMessage());
}

$response = $request->getStdResponse();

$categories = json_decode($response[1][1]);

foreach ($categories as $category) {
  displayCategoryItem($category);
}


function displayCategoryItem($category, $parentCategoryCode = null) {
    echo '<br>code: '.$category->data->code;
    if ($parentCategoryCode != null) {
        echo ' (parent category: '.$parentCategoryCode.') ';
    }
    echo ', name: '.$category->data->name;
    //echo ', bannerids: '.$category->data->bannerids; //available only with parameter 'addDetails'
    foreach ($category->items as $item) {
        displayCategoryItem($item, $category->data->code);
    }    
}

?>
NOTE: parameter 'addDetails' is available since version: 5.5.52.2