protected function processRecord($record, $columnMap, &$result, $preview = false) { foreach ($this->listeners['beforeProcessRecord'] as $listener) { $listener($record, $columnMap, $result, $preview); } $page = $this->getPage($record); if (!$page) { // Mainly for testing, in real imports the posts should be present already if (!($holder = $this->_cache_holder)) { $holder = BlogHolder::get()->First(); } if (!$holder) { $holder = new BlogHolder(); $holder->write(); } $this->_cache_holder = $holder; $page = new BlogEntry(array('DrupalNid' => $record['nid'], 'ParentID' => $holder->ID)); $page->write(); } $record['ParentID'] = $page->ID; $record['BaseClass'] = 'SiteTree'; $objId = parent::processRecord($record, $columnMap, $result, $preview); $obj = Comment::get()->byId($objId); // Created gets overwritten on new records... $obj->Created = $record['Created']; $obj->write(); foreach ($this->listeners['afterProcessRecord'] as $listener) { $listener($obj, $record, $columnMap, $result, $preview); } return $objId; }
public function loadDescendantBlogHolderIDListInto(&$idList) { $blogHolders = BlogHolder::get(); if (count($blogHolders)) { foreach ($blogHolders as $holder) { if (!in_array($holder->ID, $idList)) { $idList[] = $holder->ID; } } } }
public function getBlogCategoriesMoreLink() { if (Config::inst()->get('BlogCategory', 'limit_to_holder')) { $parent = $this->owner->Parent(); } else { $parent = BlogTree::get()->filter('ClassName', 'BlogTree')->First(); if (!$parent) { $parent = BlogHolder::get()->First(); } } return $parent->Link('categoryindex'); }
public function getCMSFields() { $fields = parent::getCMSFields(); Requirements::javascript(THIRDPARTY_DIR . '/jquery/jquery.js'); Requirements::javascript('wordpressconnector/javascript/WordpressPostContentSource.js'); if (!class_exists('BlogEntry')) { $fields->addFieldToTab('Root.Import', new LiteralField('RequiresBlogImport', '<p>The Wordpress connector requires the blog module to import posts.</p>')); } else { $blogs = BlogHolder::get(); $map = $blogs ? $blogs->map() : array(); $fields->addFieldsToTab('Root.Import', array(new DropdownField('MigrationTarget', 'Blog to import into', $map), new CheckboxField('ImportComments', 'Import comments attached to the posts?', true), new CheckboxField('ImportMedia', 'Import and rewrite references to wordpress media?', true), new TextField('AssetsPath', 'Upload wordpress files to', 'Uploads/Wordpress'))); } return $fields; }
/** * @return BlogHolder */ protected function getHolder($record) { $filter = new URLSegmentFilter(); $urlSegment = $filter->filter($record['blog_path']); $tree = $this->_cache_tree; if (!$tree) { $tree = BlogTree::get()->filter(array('Title' => 'Blogs'))->First(); if (!$tree) { $tree = new BlogTree(array('Title' => 'Blogs', 'ParentID' => $this->parentId)); $tree->write(); if ($this->publish) { $tree->publish('Stage', 'Live'); } } $this->_cache_tree = $tree; } $holder = isset($this->_cache_holders[$urlSegment]) ? $this->_cache_holders[$urlSegment] : null; if (!$holder) { $holder = BlogHolder::get()->filter(array('URLSegment' => $urlSegment, 'ParentID' => $tree->ID))->First(); if (!$holder) { $holder = new BlogHolder(array('Title' => $record['blog_title'], 'URLSegment' => $urlSegment, 'ParentID' => $tree->ID)); $holder->write(); if ($this->publish) { $holder->publish('Stage', 'Live'); } } $this->_cache_holders[$urlSegment] = $holder; } return $holder; }