示例#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
 $getFolder->filter = array('LeftOperand' => array('Property' => 'ParentFolder.ID', 'SimpleOperator' => 'equals', 'Value' => '0'), 'LogicalOperator' => 'AND', 'RightOperand' => array('Property' => 'ContentType', 'SimpleOperator' => 'equals', 'Value' => 'EMAIL'));
 $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 "\n---------------\n";
 $ParentIDForEmail = $getResponse->results[0]->ID;
 print_r('Parent Folder for Email: ' . $ParentIDForEmail . "\n");
 // Create Folder
 print "Create Folder \n";
 $postFolder = new ET_Folder();
 $postFolder->authStub = $myclient;
 $postFolder->props = array("CustomerKey" => $NameOfTestFolder, "Name" => $NameOfTestFolder, "Description" => $NameOfTestFolder, "ContentType" => "EMAIL", "ParentFolder" => array("ID" => $ParentIDForEmail));
 $postResult = $postFolder->post();
 print_r('Post Status: ' . ($postResult->status ? 'true' : 'false') . "\n");
 print 'Code: ' . $postResult->code . "\n";
 print 'Message: ' . $postResult->message . "\n";
 print 'Results Length: ' . count($postResult->results) . "\n";
 print 'Results: ' . "\n";
 print_r($postResult->results);
 print "\n---------------\n";
 // Retrieve newly created Folder
 print "Retrieve newly created Folder \n";
 $getFolder = new ET_Folder();
 $getFolder->authStub = $myclient;
 $getFolder->filter = array('Property' => 'CustomerKey', 'SimpleOperator' => 'equals', 'Value' => $NameOfTestFolder);
 $getFolder->props = array("ID", "Client.ID", "ParentFolder.ID", "ParentFolder.CustomerKey", "ParentFolder.ObjectID", "ParentFolder.Name", "ParentFolder.Description", "ParentFolder.ContentType", "ParentFolder.IsActive", "ParentFolder.IsEditable", "ParentFolder.AllowChildren", "Name", "Description", "ContentType", "IsActive", "IsEditable", "AllowChildren", "CreatedDate", "ModifiedDate", "Client.ModifiedBy", "ObjectID", "CustomerKey", "Client.EnterpriseID", "Client.CreatedBy");
 $getResponse = $getFolder->get();
 print_r('Get Status: ' . ($getResponse->status ? 'true' : 'false') . "\n");