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; }
$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");