示例#1
0
 public function post()
 {
     $originalProps = $this->props;
     if (property_exists($this, 'folderProperty') && !is_null($this->folderProperty) && !is_null($this->folderId)) {
         $this->props[$this->folderProperty] = $this->folderId;
     } else {
         if (property_exists($this, 'folderProperty') && !is_null($this->authStub->packageName)) {
             if (is_null($this->authStub->packageFolders)) {
                 $getPackageFolder = new ET_Folder();
                 $getPackageFolder->authStub = $this->authStub;
                 $getPackageFolder->props = array("ID", "ContentType");
                 $getPackageFolder->filter = array("Property" => "Name", "SimpleOperator" => "equals", "Value" => $this->authStub->packageName);
                 $resultPackageFolder = $getPackageFolder->get();
                 if ($resultPackageFolder->status) {
                     $this->authStub->packageFolders = array();
                     foreach ($resultPackageFolder->results as $result) {
                         $this->authStub->packageFolders[$result->ContentType] = $result->ID;
                     }
                 } else {
                     throw new Exception('Unable to retrieve folders from account due to: ' . $resultPackageFolder->message);
                 }
             }
             if (!array_key_exists($this->folderMediaType, $this->authStub->packageFolders)) {
                 if (is_null($this->authStub->parentFolders)) {
                     $parentFolders = new ET_Folder();
                     $parentFolders->authStub = $this->authStub;
                     $parentFolders->props = array("ID", "ContentType");
                     $parentFolders->filter = array("Property" => "ParentFolder.ID", "SimpleOperator" => "equals", "Value" => "0");
                     $resultParentFolders = $parentFolders->get();
                     if ($resultParentFolders->status) {
                         $this->authStub->parentFolders = array();
                         foreach ($resultParentFolders->results as $result) {
                             $this->authStub->parentFolders[$result->ContentType] = $result->ID;
                         }
                     } else {
                         throw new Exception('Unable to retrieve folders from account due to: ' . $resultParentFolders->message);
                     }
                 }
                 $newFolder = new ET_Folder();
                 $newFolder->authStub = $this->authStub;
                 $newFolder->props = array("Name" => $this->authStub->packageName, "Description" => $this->authStub->packageName, "ContentType" => $this->folderMediaType, "IsEditable" => "true", "ParentFolder" => array("ID" => $this->authStub->parentFolders[$this->folderMediaType]));
                 $folderResult = $newFolder->post();
                 if ($folderResult->status) {
                     $this->authStub->packageFolders[$this->folderMediaType] = $folderResult->results[0]->NewID;
                 } else {
                     throw new Exception('Unable to create folder for Post due to: ' . $folderResult->message);
                 }
             }
             $this->props[$this->folderProperty] = $this->authStub->packageFolders[$this->folderMediaType];
         }
     }
     $response = new ET_Post($this->authStub, $this->obj, $this->props);
     $this->props = $originalProps;
     return $response;
 }
示例#2
0
    // Delete Folder
    print "Delete Folder \n";
    $deleteFolder = new ET_Folder();
    $deleteFolder->authStub = $myclient;
    $deleteFolder->props = array("CustomerKey" => $NameOfTestFolder);
    $deleteResponse = $deleteFolder->delete();
    print_r('Delete Status: ' . ($deleteResponse->status ? 'true' : 'false') . "\n");
    print 'Code: ' . $deleteResponse->code . "\n";
    print 'Message: ' . $deleteResponse->message . "\n";
    print 'Results Length: ' . count($deleteResponse->results) . "\n";
    print 'Results: ' . "\n";
    print_r($deleteResponse->results);
    print "\n---------------\n";
    // Retrieve Folder to confirm deletion
    print "Retrieve Folder to confirm deletion \n";
    $getFolder = new ET_Folder();
    $getFolder->authStub = $myclient;
    $getFolder->filter = array('Property' => 'CustomerKey', 'SimpleOperator' => 'equals', 'Value' => $NameOfTestFolder);
    $getFolder->props = array("ID");
    $getResponse = $getFolder->get();
    print_r('Get Status: ' . ($getResponse->status ? 'true' : 'false') . "\n");
    print 'Code: ' . $getResponse->code . "\n";
    print 'Message: ' . $getResponse->message . "\n";
    print_r('More Results: ' . ($getResponse->moreResults ? 'true' : 'false') . "\n");
    print 'Results Length: ' . count($getResponse->results) . "\n";
    print 'Results: ' . "\n";
    print_r($getResponse->results);
    print "\n---------------\n";
} catch (Exception $e) {
    echo 'Caught exception: ', $e->getMessage(), "\n";
}