Example #1
0
 public function view()
 {
     $ct = Type::getByDefaultsPage($this->page);
     $template = Template::getByID($this->page->getPageTemplateID());
     $pl = new PageList();
     $pl->filterByPageTypeID($ct->getPageTypeID());
     $pl->filterByPageTemplate($template);
     $pl->ignorePermissions();
     $this->set('total', $pl->getTotalResults());
 }
 public function getResults(Request $request)
 {
     $list = \Concrete\Core\Page\Template::getList();
     $items = array();
     foreach ($list as $t) {
         $item = new \PortlandLabs\Concrete5\MigrationTool\Entity\Export\PageTemplate();
         $item->setItemId($t->getPageTemplateID());
         $items[] = $item;
     }
     return $items;
 }
 public function import(\SimpleXMLElement $sx)
 {
     if (isset($sx->pagetemplates)) {
         foreach ($sx->pagetemplates->pagetemplate as $pt) {
             $pkg = static::getPackageObject($pt['package']);
             $ptt = Template::getByHandle($pt['handle']);
             if (!is_object($ptt)) {
                 $ptt = Template::add((string) $pt['handle'], (string) $pt['name'], (string) $pt['icon'], $pkg, (string) $pt['internal']);
             }
         }
     }
 }
Example #4
0
 public function getPageTemplates()
 {
     $ctArray = PageTemplate::getList('');
     $pageTemplates = array();
     foreach ($ctArray as $ct) {
         $pms = new AddSubpagePageKey($ct);
         $pp = $pms->validate();
         if ($pp) {
             $pageTemplates[$ct->getPageTemplateID()] = $ct->getPageTemplateName();
         }
     }
     return $pageTemplates;
 }
Example #5
0
 public function submit()
 {
     $e = $this->app->make('error');
     $pagetype = Type::getByID($this->request->request->get('ptID'));
     if (is_object($pagetype)) {
         $configuredTarget = $pagetype->getPageTypePublishTargetObject();
         $cParentID = $configuredTarget->getPageTypePublishTargetConfiguredTargetParentPageID();
         if (!$cParentID) {
             $cParentID = $this->request->request->get('cParentID');
         }
     }
     $parent = Page::getByID($cParentID);
     $template = null;
     if ($this->request->request->get('ptComposerPageTemplateID')) {
         $template = Template::getByID($this->request->request->get('ptComposerPageTemplateID'));
     }
     if (!is_object($template)) {
         $template = $pagetype->getPageTypeDefaultPageTemplateObject();
     }
     if (is_object($pagetype)) {
         $validator = $pagetype->getPageTypeValidatorObject();
         $e->add($validator->validateCreateDraftRequest($template));
         $e->add($validator->validatePublishLocationRequest($parent));
         if ($this->request->request('addPageComposeAction') == 'publish') {
             $e->add($validator->validatePublishDraftRequest());
         }
     }
     $pr = new EditResponse();
     $pr->setError($e);
     if (!$e->has()) {
         $d = $pagetype->createDraft($template);
         $d->setPageDraftTargetParentPageID($cParentID);
         $saver = $pagetype->getPageTypeSaverObject();
         $saver->saveForm($d);
         if ($this->request->request('addPageComposeAction') == 'publish' || $this->request->request('addPageComposeAction') == 'schedule') {
             $publishDateTime = false;
             if ($this->request->request->get('addPageComposeAction') == 'schedule') {
                 $dateTime = new DateTime();
                 $publishDateTime = $dateTime->translate('check-in-scheduler');
             }
             $pagetype->publish($d, $publishDateTime);
             $pr->setAdditionalDataAttribute('cParentID', $cParentID);
             $pr->setMessage(t('Page Added Successfully.'));
         } else {
             $pr->setRedirectURL($d->getCollectionLink(true));
         }
     }
     $pr->outputJSON();
 }
Example #6
0
    public function submit()
    {
        $pagetype = Type::getByID($this->request->request->get('ptID'));
        if (is_object($pagetype)) {
            $configuredTarget = $pagetype->getPageTypePublishTargetObject();
            $cParentID = $configuredTarget->getPageTypePublishTargetConfiguredTargetParentPageID();
            if (!$cParentID) {
                $cParentID = $this->request->request->get('cParentID');
            }
        }
        list($e, $pagetype, $parent) = $this->checkPermissions(
            $this->request->request->get('ptID'),
            $cParentID
        );

        if ($this->request->request->get('ptComposerPageTemplateID')) {
            $template = Template::getByID($this->request->request->get('ptComposerPageTemplateID'));
        }
        if (!is_object($template)) {
            $template = $pagetype->getPageTypeDefaultPageTemplateObject();
        }

        if (is_object($pagetype)) {
            $validator = $pagetype->getPageTypeValidatorObject();
            $e->add($validator->validateCreateDraftRequest($template));
            if ($this->request->request('addPageComposeAction') == 'publish') {
                $e->add($validator->validatePublishDraftRequest());
            }
        }

        $pr = new EditResponse();
        $pr->setError($e);

        if (!$e->has()) {
            $d = $pagetype->createDraft($template);
            $d->setPageDraftTargetParentPageID($cParentID);
            $pagetype->savePageTypeComposerForm($d);
            if ($this->request->request('addPageComposeAction') == 'publish') {
                $pagetype->publish($d);
                $pr->setAdditionalDataAttribute('cParentID', $cParentID);
                $pr->setMessage(t('Page Added Successfully.'));
            } else {
                $pr->setRedirectURL($d->getCollectionLink(true));
            }
        }

        $pr->outputJSON();
    }
 public function execute(Batch $batch)
 {
     $templates = $batch->getObjectCollection('page_template');
     if (!$templates) {
         return;
     }
     foreach ($templates->getTemplates() as $template) {
         if (!$template->getPublisherValidator()->skipItem()) {
             $pkg = null;
             if ($template->getPackage()) {
                 $pkg = \Package::getByHandle($template->getPackage());
             }
             Template::add($template->getHandle(), $template->getName(), $template->getIcon(), $pkg, $template->getIsInternal());
         }
     }
 }
 public function execute(Batch $batch)
 {
     $types = $batch->getObjectCollection('page_type');
     /**
      * @var \PortlandLabs\Concrete5\MigrationTool\Entity\Import\PageType\PageType
      */
     if (!$types) {
         return;
     }
     foreach ($types->getTypes() as $type) {
         if (!$type->getPublisherValidator()->skipItem()) {
             $pkg = null;
             if ($type->getPackage()) {
                 $pkg = \Package::getByHandle($type->getPackage());
             }
             $defaultTemplate = Template::getByHandle($type->getDefaultTemplate());
             $templates = array();
             if ($type->getAllowedTemplates() == 'C' || $type->getAllowedTemplates() == 'X') {
                 foreach ($type->getTemplates() as $templateHandle) {
                     $templates[] = Template::getByHandle($templateHandle);
                 }
             }
             $data = array('handle' => $type->getHandle(), 'name' => $type->getName(), 'defaultTemplate' => $defaultTemplate, 'allowedtempates' => $type->getAllowedTemplates(), 'internal' => $type->getIsInternal(), 'ptLaunchInComposer' => $type->getLaunchInComposer(), 'ptIsFrequentlyAdded' => $type->getIsFrequentlyAdded(), 'templates' => $templates);
             $pageType = \Concrete\Core\Page\Type\Type::add($data, $pkg);
             foreach ($type->getLayoutSets() as $set) {
                 $layoutSet = $pageType->addPageTypeComposerFormLayoutSet($set->getName(), $set->getDescription());
                 /**
                  * @var \PortlandLabs\Concrete5\MigrationTool\Entity\Import\PageType\ComposerFormLayoutSetControl
                  */
                 foreach ($set->getControls() as $controlEntity) {
                     $controlType = \Concrete\Core\Page\Type\Composer\Control\Type\Type::getByHandle($controlEntity->getHandle());
                     $control = $controlType->configureFromImportHandle($controlEntity->getItemIdentifier());
                     $setControl = $control->addToPageTypeComposerFormLayoutSet($layoutSet, true);
                     $setControl->updateFormLayoutSetControlRequired($controlEntity->getIsRequired());
                     $setControl->updateFormLayoutSetControlCustomTemplate($controlEntity->getCustomTemplate());
                     $setControl->updateFormLayoutSetControlCustomTemplate($controlEntity->getCustomLabel());
                     $setControl->updateFormLayoutSetControlDescription($controlEntity->getDescription());
                 }
             }
         }
     }
 }
Example #9
0
 /**
  * Filters by page template.
  *
  * @param mixed $ptHandle
  */
 public function filterByPageTemplate(Template $template)
 {
     $this->query->andWhere('cv.pTemplateID = :pTemplateID');
     $this->query->setParameter('pTemplateID', $template->getPageTemplateID());
 }
 /**
  * {@inheritDoc}
  */
 public function getPageTemplateIconImage()
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'getPageTemplateIconImage', array());
     return parent::getPageTemplateIconImage();
 }
 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');
 }
Example #12
0
 protected function rescanPageTypePageTemplateDefaultPages()
 {
     $db = Loader::db();
     $templates = $this->getPageTypePageTemplateObjects();
     $templateIDs = array();
     foreach ($templates as $template) {
         $templateIDs[] = $template->getPageTemplateID();
     }
     $existingDefaultTemplateIDs = $db->GetCol('select pTemplateID from PageTypePageTemplateDefaultPages where ptID = ?', array($this->getPageTypeID()));
     foreach ($existingDefaultTemplateIDs as $existingPageTemplateID) {
         if (!in_array($existingPageTemplateID, $templateIDs)) {
             $existingPageTemplate = Template::getByID($existingPageTemplateID);
             if (is_object($existingPageTemplate)) {
                 $c = $this->getPageTypePageTemplateDefaultPageObject($existingPageTemplate);
                 if (is_object($c)) {
                     $c->delete();
                 }
             }
             $db->Execute('delete from PageTypePageTemplateDefaultPages where pTemplateID = ? and ptID = ?', array($existingPageTemplateID, $this->getPageTypeID()));
         }
     }
 }
Example #13
0
 public function getPackageItems(Package $package)
 {
     Template::getListByPackage($package);
 }
 public function getTargetItemContentObject(TargetItemInterface $targetItem)
 {
     return Template::getByHandle($targetItem->getItemID());
 }
Example #15
0
 /**
  * render Add Blog dialog
  */
 public function render()
 {
     $this->requireAsset('redactor');
     $this->requireAsset('core/file-manager');
     $blogify = Loader::helper('blogify');
     $settings = $blogify->getBlogSettings();
     $blogSectionList = new PageList();
     $blogSectionList->filter(false, "ak_blog_section = 1");
     $blogSectionList->sortBy('cvName', 'asc');
     $tmpSections = $blogSectionList->get();
     $sections = array();
     foreach ($tmpSections as $_c) {
         $pt = CollectionType::getByID($_c->getCollectionTypeID());
         $cmp = new \Permissions($pt);
         $pp = $cmp->canAddPageType();
         if ($pp) {
             $sections[$_c->getCollectionID()] = $_c->getCollectionName();
         }
     }
     $ctArray = PageTemplate::getList('');
     $pageTemplates = array();
     foreach ($ctArray as $ct) {
         $pms = new AddSubpagePageKey($ct);
         $pp = $pms->validate();
         if ($pp) {
             $pageTemplates[$ct->getPageTemplateID()] = $ct->getPageTemplateName();
         }
     }
     if ($_REQUEST['postID']) {
         $keys = array_keys($sections);
         $keys[] = -1;
         $current_page = Page::getByID($_REQUEST['postID']);
         $date = $current_page->getCollectionDatePublic();
         $canonical_parent_id = $blogify->getCanonicalParent($date, $current_page);
         $cParentID = $canonical_parent_id;
         if (in_array($canonical_parent_id, $keys)) {
             $this->blog = $current_page;
         }
     }
     if (is_object($this->blog)) {
         $blogTitle = $this->blog->getCollectionName();
         $blogDescription = $this->blog->getCollectionDescription();
         $blogDate = $this->blog->getCollectionDatePublic();
         $ptID = $this->blog->getPageTemplateID();
         $blogBody = '';
         $eb = $this->blog->getBlocks('Main');
         foreach ($eb as $b) {
             if ($b->getBlockTypeHandle() == 'content' || $b->getBlockTypeHandle() == 'core_page_type_composer_control_output') {
                 $blogBody = $b->getInstance()->getContent();
             }
         }
         echo "<div class=\"alert alert-success\"><span class=\"tooltip icon edit\"></span> " . t('You are now editing') . " <b><u>{$blogTitle}</u></b></div>";
         $task = 'editthis';
         $buttonText = t('Update Blog Entry');
         $title = 'Update';
     } else {
         $task = 'addthis';
         $buttonText = t('Add Blog Entry');
         $title = 'Add';
     }
     Loader::PackageElement('tools/add_blog', 'problog', array('blog' => $this->blog, 'blogTitle' => $blogTitle, 'blogDescription' => $blogDescription, 'blogBody' => $blogBody, 'sections' => $sections, 'pageTemplates' => $pageTemplates, 'buttonText' => $buttonText, 'ptID' => $ptID, 'settings' => $settings));
 }
Example #16
0
 public function getContentObject()
 {
     return Template::getByHandle($this->getReference());
 }
 public function skipItem()
 {
     $template = Template::getByHandle($this->object->getHandle());
     return is_object($template);
 }
Example #18
0
<?php

defined('C5_EXECUTE') or die(_("Access Denied."));
use Concrete\Core\Page\Template;
$tmplt = Template::getByHandle('right_sidebar');
echo '<h3>' . t('Pre Install Checker') . '</h3>';
if ($tmplt && $tmplt->getPageTemplateID()) {
    echo '<div class="ccm-ui" id="ccm-dashboard-result-message">';
    echo '    <div class="alert alert-success alert-dismissible">';
    echo '<img src="' . ASSETS_URL_IMAGES . '/icons/success.png" width="16" height="16"/> &nbsp; <strong> ' . t('Excellent! Your theme has a right_sidebar!') . '</strong>';
    echo '<br/><br/><p>' . t('Everything looks good! Go ahead and install ProBlog!') . '</p>';
    echo '   </div>';
    echo '</div>';
} else {
    echo '<div class="ccm-ui" id="ccm-dashboard-result-message">';
    echo '    <div class="alert alert-danger alert-dismissible">';
    echo '<img src="' . ASSETS_URL_IMAGES . '/icons/error.png" width="16" height="16"/> &nbsp; <strong> ' . t('No right_sidebar page template found') . '</strong>';
    echo '<br/><br/><p>' . t('Danger Will Robinson!!! Your theme must have a right_sidebar page template to install!!!') . '</p>';
    echo '<br/><p>' . t('Please <b><u>cancel</u></b> and register a right_sidebar page template to your theme before attempting to install ProBlog!') . '</p>';
    echo '   </div>';
    echo '</div>';
}
Example #19
0
 public function install_pb_settings()
 {
     $tmplt = Template::getByHandle('right_sidebar');
     $serch = Page::getByPath('/blogsearch');
     $args = array('tweet' => 1, 'fb_like' => 1, 'google' => 0, 'addthis' => 1, 'author' => 0, 'comments' => 1, 'trackback' => 1, 'canonical' => 1, 'breakSyntax' => '<hr id="horizontalrule">', 'search_path' => $serch->getCollectionID(), 'icon_color' => 'brown', 'thumb_width' => '110', 'thumb_height' => '120', 'pageTemplate' => $tmplt->getPageTemplateID());
     $db = Loader::db();
     $db->Execute("DELETE FROM btProBlogSettings");
     $db->insert('btProBlogSettings', $args);
 }
 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);
         }
     }
 }
Example #21
0
 public function add_content_section()
 {
     if (!$this->token->validate('add_content_section')) {
         $this->error->add($this->token->getErrorMessage());
     }
     if (!$this->request->request->get('msLanguage')) {
         $this->error->add(t('You must specify a valid language.'));
     }
     if (!$this->request->request->get('msCountry')) {
         $this->error->add(t('You must specify a valid country.'));
     }
     if (!$this->request->request->get('urlSlug')) {
         $this->error->add(t('You must specify a valid URL Slug for the home page.'));
     }
     $template = null;
     if ($this->request->request->has('template')) {
         $template = Template::getByID($this->request->request->get('template'));
     }
     if (!is_object($template)) {
         $this->error->add(t('You must specify a valid page template.'));
     }
     if ($this->post('msLanguage')) {
         $combination = $this->post('msLanguage') . '_' . $this->post('msCountry');
         foreach ($this->site->getLocales() as $locale) {
             if ($locale->getLocale() == $combination) {
                 $this->error->add(t('This language/region combination already exists.'));
             }
         }
     }
     if (!$this->error->has()) {
         $service = new Service($this->entityManager);
         $locale = $service->add($this->getSite(), $this->request->request->get('msLanguage'), $this->request->request->get('msCountry'));
         $service->addHomePage($locale, $template, $this->request->request->get('homePageName'), $this->request->request->get('urlSlug'));
         $this->flash('success', t('Locale added successfully.'));
         return new JsonResponse($locale);
     } else {
         return new JsonResponse($this->error);
     }
 }
Example #22
0
 public function getPageTemplate()
 {
     return PageTemplate::getByID($this->pTemplateID);
 }
Example #23
0
 public function getPageTemplateIconImage()
 {
     return parent::getPageTemplateIconImage();
 }