public static function handlePostRequest() { $data = static::getRequestData(); // create Content object $Content = new CMS_BlogPost(); $Content->Title = $data['Title']; $Content->save(); // create text ContentItem object $ContentItem = new CMS_RichTextContent(); $ContentItem->ContentID = $Content->ID; $ContentItem->Data = $data['Data']; $ContentItem->save(); // create CategoryItem object foreach if (is_array($data['Categories']) && count($data['Categories'])) { foreach ($data['Categories'] as $cat) { $Category = Category::getByID($cat); $CategoryItem = new CategoryItem(); $CategoryItem->ContextClass = 'CMS_BlogPost'; $CategoryItem->ContextID = $Content->ID; $CategoryItem->CategoryID = $Category->ID; $CategoryItem->save(); } } // create TagItem object foreach. if Tag object doesn't exist, create as well if (is_array($data['Tags']) && count($data['Tags'])) { foreach ($data['Tags'] as $word) { $Tag = Tag::getFromHandle($word, true); // second boolean is telling method to make the Tag object for us if it doesn't exist $TagItem = new TagItem(); $TagItem->ContextClass = 'CMS_BlogPost'; $TagItem->ContextID = $Content->ID; $TagItem->TagID = $Tag->ID; $TagItem->save(); } } return static::respondCRUD($Content, 'singular', 'created'); }