public function configurePageTypePublishTargetFromImport($txml) { $configuration = new PageTypeConfiguration($this); $ct = PageType::getByHandle((string) $txml['pagetype']); $configuration->setPageTypeID($ct->getPageTypeID()); return $configuration; }
public function view() { $ct = CollectionType::getByHandle('pb_post'); $ctID = $ct->getPageTypeID(); if ($this->targetCID > 0) { $target = Page::getByID($this->targetCID); $this->set('target', $target); } else { $target = Page::getByPath('/blogsearch'); $this->set('target', $target); } if (!$this->page_type) { $this->page_type = 'pb_post'; } $page_type = trim($this->page_type); $query = "SELECT MIN(cv.cvDatePublic) as firstPost\n\t\t\tFROM CollectionVersions cv\n INNER JOIN Pages pp ON cv.cID = pp.cID\n\t\t\tINNER JOIN PageTypes pt ON pp.ptID = pt.ptID\n\t\t\tWHERE pt.ptHandle = ? and cv.cvIsApproved = 1\n\t\t\tAND cv.cvDatePublic < CURDATE()\n ORDER BY firstPost ASC"; $db = Loader::db(); $firstPost = $db->getOne($query, array($page_type)); if (strlen($firstPost)) { $firstPost = new \DateTime($firstPost); $this->set('firstPost', $firstPost); } $this->set('numMonths', $this->numMonths); $this->set('navigation', loader::helper('navigation')); }
public function getItems(Batch $batch) { // first, loop through all the page types // that are mapped in the current content batch $db = \Database::connection(); $em = $db->getEntityManager(); $query = $em->createQuery("select ti from PortlandLabs\\Concrete5\\MigrationTool\\Entity\\Import\\BatchTargetItem bti\n join PortlandLabs\\Concrete5\\MigrationTool\\Entity\\ContentMapper\\TargetItem ti\n where bti.batch = :batch and bti.target_item = ti and ti.item_type = :type"); $query->setParameter('batch', $batch); $query->setParameter('type', 'page_type'); $types = $query->getResult(); $items = array(); $handles = array(); foreach ($types as $type) { if (!in_array($type->getItemID(), $handles)) { $handles[] = $type->getItemID(); } } foreach ($handles as $handle) { $type = Type::getByHandle($handle); if (is_object($type)) { $items = array_merge($items, $this->getPageTypeComposerOutputContentItems($type)); } } return $items; }
public function up(Schema $schema) { $type = Type::getByHandle(STACK_CATEGORY_PAGE_TYPE); if (!is_object($type)) { Type::add(array('internal' => true, 'name' => 'Stack Category', 'handle' => STACK_CATEGORY_PAGE_TYPE)); } }
public function execute(Batch $batch) { $this->batch = $batch; // First, create the top level page for the batch. $batches = \Page::getByPath('/!import_batches'); $type = Type::getByHandle('import_batch'); $batchParent = $batches->add($type, array('cName' => $batch->getID(), 'cHandle' => $batch->getID(), 'pkgID' => \Package::getByHandle('migration_tool')->getPackageID())); $pages = $this->getPagesOrderedForImport($batch); if (!$pages) { return; } // Now loop through all pages, and build them foreach ($pages as $page) { $data = array(); $ui = $this->getTargetItem('user', $page->getUser()); if ($ui != '') { $data['uID'] = $ui->getUserID(); } else { $data['uID'] = USER_SUPER_ID; } $cDatePublic = $page->getPublicDate(); if ($cDatePublic) { $data['cDatePublic'] = $cDatePublic; } $type = $this->getTargetItem('page_type', $page->getType()); if ($type) { $data['ptID'] = $type->getPageTypeID(); } $template = $this->getTargetItem('page_template', $page->getTemplate()); if (is_object($template)) { $data['pTemplateID'] = $template->getPageTemplateID(); } if ($page->getPackage()) { $pkg = \Package::getByHandle($page->getPackage()); if (is_object($pkg)) { $data['pkgID'] = $pkg->getPackageID(); } } // TODO exception if parent not found if ($page->getBatchPath() != '') { $lastSlash = strrpos($page->getBatchPath(), '/'); $parentPath = substr($page->getBatchPath(), 0, $lastSlash); $data['cHandle'] = substr($page->getBatchPath(), $lastSlash + 1); if (!$parentPath) { $parent = $batchParent; } else { $parent = \Page::getByPath('/!import_batches/' . $this->batch->getID() . $parentPath); } } else { $parent = $batchParent; } $data['name'] = $page->getName(); $data['cDescription'] = $page->getDescription(); $parent->add($type, $data); } }
public function add($name, Folder $folder = null) { $site = \Core::make('site')->getActiveSiteForEditing(); $type = Type::getByHandle(STACK_CATEGORY_PAGE_TYPE); $parent = $folder ? $folder->getPage() : \Page::getByPath(STACKS_PAGE_PATH, 'RECENT', $site); $data = array(); $data['name'] = $name; $page = $parent->add($type, $data); return $this->application->make('Concrete\\Core\\Page\\Stack\\Folder\\Folder', array($page)); }
/** * @param Section $section * @return StackCategory */ public static function createFromMultilingualSection(Section $section) { $parent = \Page::getByPath(STACKS_PAGE_PATH); $data = array(); $data['name'] = $section->getLocale(); $data['cHandle'] = $section->getLocale(); $type = Type::getByHandle(STACK_CATEGORY_PAGE_TYPE); $page = $parent->add($type, $data); $sc = new StackCategory($page); return $sc; }
public function configurePageTypePublishTargetFromImport($txml) { $configuration = new PageTypeConfiguration($this); $ct = PageType::getByHandle((string) $txml['pagetype']); $formFactor = (string) $txml['form-factor']; $configuration->setPageTypeID($ct->getPageTypeID()); if ($formFactor) { $configuration->setSelectorFormFactor($formFactor); } return $configuration; }
public function install_pb_page_defaults($pkg, $cocID) { $pageType = CollectionType::getByHandle('pb_post'); $ctTemplate = $pageType->getPageTypeDefaultPageTemplateObject(); $blogPostCollectionTypeMT = $pageType->getPageTypePageTemplateDefaultPageObject($ctTemplate); $ctID = $pageType->getPageTypeID(); $bt = BlockType::getByHandle('problog_list'); $cIDn = Page::getByPath('/blog')->getCollectionID(); $blocks = $blogPostCollectionTypeMT->getBlocks('Sidebar'); foreach ($blocks as $b) { $b->deleteBlock(); } $i = 0; for ($bb = 1; $bb <= 4; $bb += 1) { if ($bb == 1) { $title = t('Category List'); } elseif ($bb == 2) { $title = t('Tag List'); } elseif ($bb == 3) { $title = t('Tag Cloud'); } elseif ($bb == 4) { $title = t('Archive'); } $data = array('num' => '25', 'cParentID' => '0', 'cThis' => '0', 'paginate' => '0', 'displayAliases' => '0', 'ctID' => $ctID, 'rss' => '0', 'rssTitle' => '', 'rssDescription' => '', 'truncateSummaries' => '0', 'truncateChars' => '128', 'category' => t('All Categories'), 'title' => $title); $b = $blogPostCollectionTypeMT->addBlock($bt, 'Sidebar', $data); $i++; if ($i == 1) { $b->setCustomTemplate('categories'); } elseif ($i == 2) { $b->setCustomTemplate('tags'); } elseif ($i == 3) { $b->setCustomTemplate('tag_cloud'); } elseif ($i == 4) { $b->setCustomTemplate('archive'); } } //add composer controll output to pb_post defaults $bt = BlockType::getByHandle('core_page_type_composer_control_output'); $data = array('ptComposerOutputControlID' => $cocID); $blogPostCollectionTypeMT->addBlock($bt, 'Main', $data); //install guestbook to page_type template $guestBookBT = BlockType::getByHandle('core_conversation'); $guestbookArray = array(); $guestbookArray['attachmentsEnabled'] = 0; $guestbookArray['title'] = t('Please add a comment'); $guestbookArray['itemsPerPage'] = 14; $guestbookArray['enablePosting'] = 1; $guestbookArray['paginate'] = 1; $guestbookArray['displayMode'] = 'threaded'; $blogPostCollectionTypeMT->addBlock($guestBookBT, 'Blog Post More', $guestbookArray); }
public function add() { $this->setupForm(); if ($this->isPost()) { $this->validate(); if (!$this->error->has()) { $date = Loader::helper('form/date_time')->translate('blogDate'); $parent = ProblogPost::getParentByID($this->post('cParentID')); $canonical = Loader::helper('blogify')->getOrCreateCanonical($date, $parent); $ct = CollectionType::getByHandle('pb_post'); $data = array('cName' => $this->post('blogTitle'), 'cDescription' => $this->post('blogDescription'), 'cDatePublic' => $date); $p = $canonical->add($ct, $data); $p = ProblogPost::getByID($p->getCollectionID()); $p->update(array('pTemplateID' => $this->post('ptID'))); if ($this->post('draft') == 1 || $this->post('draft') == 2) { $p->deactivate(); if ($this->post('draft') == 2) { Loader::helper('blog_actions')->send_publish_request($p); } } ProblogPost::saveData($p); if (!$this->post('save_post')) { $this->redirect('/dashboard/problog/blog_list/', 'blogadded'); } else { $this->redirect('/dashboard/problog/add_blog/edit/' . $p->getCollectionID()); } } } }
protected function installPagetypes($pkg) { $type = Type::getByHandle('import_batch'); if (!is_object($type)) { Type::add(array('internal' => true, 'name' => 'Import Batch', 'handle' => 'import_batch')); } }
protected function installDesktops() { $this->output(t('Installing Desktops...')); $template = Template::getByHandle('desktop'); if (!is_object($template)) { Template::add('desktop', t('Desktop'), FILENAME_PAGE_TEMPLATE_DEFAULT_ICON, null, true); } $type = \Concrete\Core\Page\Type\Type::getByHandle('core_desktop'); if (!is_object($type)) { \Concrete\Core\Page\Type\Type::add(array('handle' => 'core_desktop', 'name' => 'Desktop', 'internal' => true)); } $category = Category::getByHandle('collection')->getController(); $attribute = CollectionKey::getByHandle('is_desktop'); if (!is_object($attribute)) { $key = new PageKey(); $key->setAttributeKeyHandle('is_desktop'); $key->setAttributeKeyName('Is Desktop'); $key->setIsAttributeKeyInternal(true); $category->add('boolean', $key); } $attribute = CollectionKey::getByHandle('desktop_priority'); if (!is_object($attribute)) { $key = new PageKey(); $key->setAttributeKeyHandle('desktop_priority'); $key->setAttributeKeyName('Desktop Priority'); $key->setIsAttributeKeyInternal(true); $category->add('number', $key); } $desktop = Page::getByPath('/dashboard/welcome'); if (is_object($desktop) && !$desktop->isError()) { $desktop->moveToTrash(); } $desktop = Page::getByPath('/desktop'); if (is_object($desktop) && !$desktop->isError()) { $desktop->moveToTrash(); } $page = \Page::getByPath("/account/messages"); if (is_object($page) && !$page->isError()) { $page->moveToTrash(); } // Private Messages tweak SinglePage::add('/account/messages'); $ci = new ContentImporter(); $ci->importContentFile(DIR_BASE_CORE . '/config/install/upgrade/desktops.xml'); $desktop = Page::getByPath('/dashboard/welcome'); $desktop->movePageDisplayOrderToTop(); \Config::save('concrete.misc.login_redirect', 'DESKTOP'); }
public function skipItem() { $type = Type::getByHandle($this->object->getHandle()); return is_object($type); }
public function getTargetItemContentObject(TargetItemInterface $targetItem) { return Type::getByHandle($targetItem->getItemID()); }
public function getContentObject() { return Type::getByHandle($this->getReference()); }
public function getOrCreateCanonical($date, $parent) { $db = Loader::db(); $canonical = $db->getOne("SELECT canonical FROM btProBlogSettings"); if ($canonical) { $year = date('Y', strtotime($date)); $month = date('m', strtotime($date)); $month_name = date('M', strtotime($date)); $pageType = CollectionType::getByHandle('pb_post'); if (!is_object($pageType) || $pageType == false) { $pageType = CollectionType::getByHandle('left_sidebar'); } if (!is_object($pageType) || $pageType == false) { $pageType = CollectionType::getByHandle('right_sidebar'); } if (!is_object($pageType) || $pageType == false) { $pageType = CollectionType::getByHandle('default'); } if (!is_object($pageType) || $pageType == false) { $pageType = CollectionType::getByHandle('page'); } $canonical_year = Page::getByPath($parent->getCollectionPath() . '/' . $year . '/'); if (!$canonical_year->cID) { $canonical_year = $parent->add($pageType, array('cName' => $year, 'cHandle' => $year, 'cDescription' => $year . t(' Blog Posts'))); $canonical_year->setAttribute('exclude_page_list', 1); $canonical_year->setAttribute('exclude_search_index', 1); $canonical_year->setAttribute('is_canonical_page', 1); $bt = BlockType::getByHandle('problog_list'); $cParentID = $canonical_year->getCollectionID(); $data = array('num' => '10', 'cParentID' => $cParentID, 'cThis' => '0', 'paginate' => '1', 'displayAliases' => '1', 'ctID' => $pageType->getPageTypeID(), 'rss' => '1', 'rssTitle' => t('Latest blog'), 'orderBy' => 'chrono_desc', 'rssDescription' => t('Our latest blog feed'), 'truncateSummaries' => '0', 'truncateChars' => '128', 'category' => t('All Categories'), 'title' => $year . t(' Blog Posts')); $b = $canonical_year->addBlock($bt, 'Main', $data); $b->setCustomTemplate('templates/micro_blog'); $block = $canonical_year->getBlocks('Sidebar'); foreach ($block as $b) { $b->delete(); } $i = 0; for ($bb = 1; $bb <= 4; $bb += 1) { if ($bb == 1) { $title = t('Category List'); } elseif ($bb == 2) { $title = t('Tag List'); } elseif ($bb == 3) { $title = t('Tag Cloud'); } elseif ($bb == 4) { $title = t('Archive'); } $data = array('num' => '25', 'cParentID' => $cParentID, 'cThis' => '0', 'paginate' => '0', 'displayAliases' => '0', 'ctID' => $pageType->getPageTypeID(), 'rss' => '0', 'rssTitle' => '', 'rssDescription' => '', 'truncateSummaries' => '0', 'truncateChars' => '128', 'category' => t('All Categories'), 'title' => $title); $b = $canonical_year->addBlock($bt, 'Sidebar', $data); $i++; if ($i == 1) { $b->setCustomTemplate('categories'); } elseif ($i == 2) { $b->setCustomTemplate('tags'); } elseif ($i == 3) { $b->setCustomTemplate('tag_cloud'); } elseif ($i == 4) { $b->setCustomTemplate('archive'); } } } $canonical_month = Page::getByPath($canonical_year->getCollectionPath() . '/' . $month . '/'); if (!$canonical_month->cID) { $canonical_month = $canonical_year->add($pageType, array('cName' => $month, 'cHandle' => $month, 'cDescription' => $month_name . ', ' . $year . t(' Blog Posts'))); $canonical_month->setAttribute('exclude_page_list', 1); $canonical_month->setAttribute('exclude_search_index', 1); $canonical_month->setAttribute('is_canonical_page', 1); $bt = BlockType::getByHandle('problog_list'); $cParentID = $canonical_month->getCollectionID(); $data = array('num' => '10', 'cParentID' => $cParentID, 'cThis' => '0', 'paginate' => '1', 'displayAliases' => '1', 'ctID' => $pageType->getPageTypeID(), 'rss' => '1', 'rssTitle' => t('Latest blog'), 'orderBy' => 'chrono_desc', 'rssDescription' => t('Our latest blog feed'), 'truncateSummaries' => '0', 'truncateChars' => '128', 'category' => t('All Categories'), 'title' => $month . t(' Blog Posts')); $b = $canonical_month->addBlock($bt, 'Main', $data); $b->setCustomTemplate('templates/micro_blog'); $block = $canonical_month->getBlocks('Sidebar'); foreach ($block as $b) { $b->delete(); } $i = 0; for ($bb = 1; $bb <= 4; $bb += 1) { if ($bb == 1) { $title = t('Category List'); } elseif ($bb == 2) { $title = t('Tag List'); } elseif ($bb == 3) { $title = t('Tag Cloud'); } elseif ($bb == 4) { $title = t('Archive'); } $data = array('num' => '25', 'cParentID' => $cParentID, 'cThis' => '0', 'paginate' => '0', 'displayAliases' => '0', 'ctID' => $pageType->getPageTypeID(), 'rss' => '0', 'rssTitle' => '', 'rssDescription' => '', 'truncateSummaries' => '0', 'truncateChars' => '128', 'category' => t('All Categories'), 'title' => $title); $b = $canonical_month->addBlock($bt, 'Sidebar', $data); $i++; if ($i == 1) { $b->setCustomTemplate('categories'); } elseif ($i == 2) { $b->setCustomTemplate('tags'); } elseif ($i == 3) { $b->setCustomTemplate('tag_cloud'); } elseif ($i == 4) { $b->setCustomTemplate('archive'); } } } return Page::getByPath($parent->getCollectionPath() . '/' . $year . '/' . $month . '/'); } else { return $parent; } }
public function testBasicFeedSave() { $pt = \Concrete\Core\Page\Type\Type::getByHandle('another'); $pp = \Concrete\Core\Page\Page::getByPath('/another-fun-page'); $pf = new \Concrete\Core\Page\Feed(); $pf->setHandle('blog'); $pf->setPageTypeID($pt->getPageTypeID()); $pf->setParentID($pp->getCollectionID()); $pf->setTitle('RSS Feed'); $pf->setDescription('My Description'); $pf->save(); $this->assertEquals('blog', $pf->getHandle()); $this->assertEquals(1, $pf->getID()); $pf->ignorePermissions(); $pl = $pf->getPageListObject(); $this->assertInstanceOf('\\Concrete\\Core\\Page\\PageList', $pl); $this->assertEquals(1, $pl->getTotalResults()); $results = $pl->getResults(); $this->assertEquals('Foobler', $results[0]->getCollectionName()); }
public function import(\SimpleXMLElement $sx) { if (isset($sx->pages)) { $nodes = array(); $i = 0; foreach ($sx->pages->page as $p) { $p->originalPos = $i; $nodes[] = $p; ++$i; } usort($nodes, array('static', 'setupPageNodeOrder')); $siteTree = null; if (isset($this->home)) { $home = $this->home; $siteTree = $this->home->getSiteTreeObject(); } else { $home = Page::getByID(HOME_CID, 'RECENT'); } foreach ($nodes as $px) { $pkg = static::getPackageObject($px['package']); $data = array(); $user = (string) $px['user']; if ($user != '') { $ui = UserInfo::getByUserName($user); if (is_object($ui)) { $data['uID'] = $ui->getUserID(); } else { $data['uID'] = USER_SUPER_ID; } } $cDatePublic = (string) $px['public-date']; if ($cDatePublic) { $data['cDatePublic'] = $cDatePublic; } $data['pkgID'] = 0; if (is_object($pkg)) { $data['pkgID'] = $pkg->getPackageID(); } $args = array(); $ct = Type::getByHandle($px['pagetype']); $template = Template::getByHandle($px['template']); if ($px['path'] != '') { // not home page $page = Page::getByPath($px['path'], 'RECENT', $siteTree); if (!is_object($page) || $page->isError()) { $lastSlash = strrpos((string) $px['path'], '/'); $parentPath = substr((string) $px['path'], 0, $lastSlash); $data['cHandle'] = substr((string) $px['path'], $lastSlash + 1); if (!$parentPath) { $parent = $home; } else { $parent = Page::getByPath($parentPath, 'RECENT', $siteTree); } $page = $parent->add($ct, $data); } } else { $page = $home; } $args['cName'] = $px['name']; $args['cDescription'] = $px['description']; if (is_object($ct)) { $args['ptID'] = $ct->getPageTypeID(); } $args['pTemplateID'] = $template->getPageTemplateID(); $page->update($args); } } }