Example #1
0
 public function addBlock($blockTypeHandle)
 {
     $bt = BlockType::getByHandle($blockTypeHandle);
     $cct = ComposerControlType::getByHandle('block');
     $control = $ctca->getPageTypeComposerControlByIdentifier($bt->getBlockID());
     // add control
     $composerFLS = $control->addToPageTypeComposerFormLayoutSet($this->layoutSet);
 }
 public function import(\SimpleXMLElement $sx)
 {
     if (isset($sx->pagetypecomposercontroltypes)) {
         foreach ($sx->pagetypecomposercontroltypes->type as $th) {
             $pkg = static::getPackageObject($th['package']);
             $ce = Type::add((string) $th['handle'], (string) $th['name'], $pkg);
         }
     }
 }
 public function getResults(Request $request)
 {
     $list = Type::getList();
     $items = array();
     foreach ($list as $t) {
         $item = new \PortlandLabs\Concrete5\MigrationTool\Entity\Export\PageTypeComposerControlType();
         $item->setItemId($t->getPageTypeComposerControlTypeID());
         $items[] = $item;
     }
     return $items;
 }
 public function execute(Batch $batch)
 {
     $types = $batch->getObjectCollection('page_type_publish_target_type');
     if (!$types) {
         return;
     }
     foreach ($types->getTypes() as $type) {
         if (!$type->getPublisherValidator()->skipItem()) {
             $pkg = false;
             if ($type->getPackage()) {
                 $pkg = \Package::getByHandle($type->getPackage());
             }
             \Concrete\Core\Page\Type\Composer\Control\Type\Type::add($type->getHandle(), $type->getName(), $pkg);
         }
     }
 }
 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());
                 }
             }
         }
     }
 }
 /**
  * Returns an array of package items (e.g. blocks, themes)
  */
 public function getPackageItems()
 {
     $items = array();
     $items['attribute_categories'] = AttributeKeyCategory::getListByPackage($this);
     $items['permission_categories'] = PermissionKeyCategory::getListByPackage($this);
     $items['permission_access_entity_types'] = PermissionAccessEntityType::getListByPackage($this);
     $items['attribute_keys'] = AttributeKey::getListByPackage($this);
     $items['attribute_sets'] = AttributeSet::getListByPackage($this);
     $items['group_sets'] = GroupSet::getListByPackage($this);
     $items['page_types'] = PageType::getListByPackage($this);
     $items['page_templates'] = PageTemplate::getListByPackage($this);
     $items['mail_importers'] = MailImporter::getListByPackage($this);
     $items['gathering_item_template_types'] = GatheringItemTemplateType::getListByPackage($this);
     $items['gathering_item_templates'] = GatheringItemTemplate::getListByPackage($this);
     $items['gathering_data_sources'] = GatheringDataSource::getListByPackage($this);
     $items['features'] = Feature::getListByPackage($this);
     $items['feature_categories'] = FeatureCategory::getListByPackage($this);
     $btl = new BlockTypeList();
     $btl->filterByPackage($this);
     $blocktypes = $btl->get();
     $items['block_types'] = $blocktypes;
     $items['block_type_sets'] = BlockTypeSet::getListByPackage($this);
     $items['page_themes'] = PageTheme::getListByPackage($this);
     $items['permissions'] = PermissionKey::getListByPackage($this);
     $items['single_pages'] = SinglePage::getListByPackage($this);
     $items['attribute_types'] = AttributeType::getListByPackage($this);
     $items['captcha_libraries'] = SystemCaptchaLibrary::getListByPackage($this);
     $items['content_editor_snippets'] = SystemContentEditorSnippet::getListByPackage($this);
     $items['conversation_editors'] = ConversationEditor::getListByPackage($this);
     $items['conversation_rating_types'] = ConversationRatingType::getListByPackage($this);
     $items['page_type_publish_target_types'] = PageTypePublishTargetType::getListByPackage($this);
     $items['page_type_composer_control_types'] = PageTypeComposerControlType::getListByPackage($this);
     $items['antispam_libraries'] = SystemAntispamLibrary::getListByPackage($this);
     $items['community_point_actions'] = UserPointAction::getListByPackage($this);
     $items['jobs'] = Job::getListByPackage($this);
     $items['workflow_types'] = WorkflowType::getListByPackage($this);
     ksort($items);
     return $items;
 }
 public function run()
 {
     $this->x = new SimpleXMLElement("<concrete5-cif></concrete5-cif>");
     $this->x->addAttribute('version', '1.0');
     // First, attribute categories
     AttributeKeyCategory::exportList($this->x);
     // Features
     Feature::exportList($this->x);
     FeatureCategory::exportList($this->x);
     ConversationEditor::exportList($this->x);
     ConversationRatingType::exportList($this->x);
     // composer
     PageTypePublishTargetType::exportList($this->x);
     PageTypeComposerControlType::exportList($this->x);
     PageType::exportList($this->x);
     // attribute types
     AttributeType::exportList($this->x);
     // then block types
     BlockTypeList::exportList($this->x);
     // now block type sets (including user)
     BlockTypeSet::exportList($this->x);
     // gathering
     GatheringDataSource::exportList($this->x);
     GatheringItemTemplate::exportList($this->x);
     // now attribute keys (including user)
     AttributeKey::exportList($this->x);
     // now attribute keys (including user)
     AttributeSet::exportList($this->x);
     PageTemplate::exportList($this->x);
     // now theme
     PageTheme::exportList($this->x);
     // now packages
     PackageList::export($this->x);
     // permission access entity types
     PermissionAccessEntityType::exportList($this->x);
     // now task permissions
     PermissionKey::exportList($this->x);
     // workflow types
     WorkflowType::exportList($this->x);
     // now jobs
     Job::exportList($this->x);
     // now single pages
     $singlepages = $this->x->addChild("singlepages");
     $db = Loader::db();
     $r = $db->Execute('select cID from Pages where cFilename is not null and cFilename <> "" and cID not in (select cID from Stacks) order by cID asc');
     while ($row = $r->FetchRow()) {
         $pc = Page::getByID($row['cID'], 'RECENT');
         $pc->export($singlepages);
     }
     // now stacks/global areas
     StackList::export($this->x);
     // now content pages
     $pages = $this->x->addChild("pages");
     $db = Loader::db();
     $r = $db->Execute('select Pages.cID from Pages where cIsTemplate = 0 and cFilename is null or cFilename = "" order by cID asc');
     while ($row = $r->FetchRow()) {
         $pc = Page::getByID($row['cID'], 'RECENT');
         if ($pc->getPageTypeHandle() == STACKS_PAGE_TYPE) {
             continue;
         }
         $pc->export($pages);
     }
     SystemCaptchaLibrary::exportList($this->x);
     \Concrete\Core\Sharing\SocialNetwork\Link::exportList($this->x);
     \Concrete\Core\Page\Feed::exportList($this->x);
     \Concrete\Core\File\Image\Thumbnail\Type\Type::exportList($this->x);
     Config::exportList($this->x);
     Tree::exportList($this->x);
 }
 public function getPageTypeComposerControlTypeObject()
 {
     return PageTypeComposerControlType::getByHandle($this->ptComposerControlTypeHandle);
 }
Example #9
0
 public static function import($node)
 {
     $types = array();
     if ((string) $node->pagetemplates['type'] == 'custom' || (string) $node->pagetemplates['type'] == 'except') {
         if ((string) $node->pagetemplates['type'] == 'custom') {
             $ptAllowedPageTemplates = 'C';
         } else {
             $ptAllowedPageTemplates = 'X';
         }
         foreach ($node->pagetemplates->pagetemplate as $pagetemplate) {
             $types[] = PageTemplate::getByHandle((string) $pagetemplate['handle']);
         }
     } else {
         $ptAllowedPageTemplates = 'A';
     }
     $ptName = (string) $node['name'];
     $ptHandle = (string) $node['handle'];
     $db = Loader::db();
     $defaultPageTemplate = PageTemplate::getByHandle((string) $node->pagetemplates['default']);
     $ptID = $db->GetOne('select ptID from PageTypes where ptHandle = ?', array($ptHandle));
     $data = array('handle' => $ptHandle, 'name' => $ptName);
     if ($defaultPageTemplate) {
         $data['defaultTemplate'] = $defaultPageTemplate;
     }
     if ($ptAllowedPageTemplates) {
         $data['allowedTemplates'] = $ptAllowedPageTemplates;
     }
     if ($node['internal']) {
         $data['internal'] = true;
     }
     $data['ptLaunchInComposer'] = 0;
     if ($node['launch-in-composer'] == '1') {
         $data['ptLaunchInComposer'] = 1;
     }
     $data['ptIsFrequentlyAdded'] = 0;
     if ($node['is-frequently-added'] == '1') {
         $data['ptIsFrequentlyAdded'] = 1;
     }
     $data['templates'] = $types;
     $pkg = false;
     if ($node['package']) {
         $pkg = Package::getByHandle((string) $node['package']);
     }
     if ($ptID) {
         $cm = static::getByID($ptID);
         $cm->update($data);
     } else {
         $cm = static::add($data, $pkg);
     }
     $node = $node->composer;
     if (isset($node->formlayout->set)) {
         foreach ($node->formlayout->set as $setnode) {
             $set = $cm->addPageTypeComposerFormLayoutSet((string) $setnode['name'], (string) $setnode['description']);
             if (isset($setnode->control)) {
                 foreach ($setnode->control as $controlnode) {
                     $controltype = PageTypeComposerControlType::getByHandle((string) $controlnode['type']);
                     $control = $controltype->configureFromImportHandle((string) $controlnode['handle']);
                     $setcontrol = $control->addToPageTypeComposerFormLayoutSet($set, true);
                     $required = (string) $controlnode['required'];
                     $customTemplate = (string) $controlnode['custom-template'];
                     $label = (string) $controlnode['custom-label'];
                     $description = (string) $controlnode['description'];
                     $outputControlID = (string) $controlnode['output-control-id'];
                     if ($required == '1') {
                         $setcontrol->updateFormLayoutSetControlRequired(true);
                     } else {
                         $setcontrol->updateFormLayoutSetControlRequired(false);
                     }
                     if ($customTemplate) {
                         $setcontrol->updateFormLayoutSetControlCustomTemplate($customTemplate);
                     }
                     if ($label) {
                         $setcontrol->updateFormLayoutSetControlCustomLabel($label);
                     }
                     if ($description) {
                         $setcontrol->updateFormLayoutSetControlDescription($description);
                     }
                     if ($outputControlID) {
                         ContentImporter::addPageTypeComposerOutputControlID($setcontrol, $outputControlID);
                     }
                 }
             }
         }
     }
 }
Example #10
0
    function save_settings()
    {
        if ($_POST['optional_attributes']) {
            $forumAttributes = serialize($_POST['optional_attributes']);
            /* Get blog_post page template */
            $pageType = \PageType::getByID($_POST['page_type']);
            $ctTemplate = $pageType->getPageTypeDefaultPageTemplateObject();
            $blogPostTemplate = $pageType->getPageTypePageTemplateDefaultPageObject($ctTemplate);
            // Drop the Optional Attribute Composer Layout
            $db = Loader::db();
            $db->Execute('delete from PageTypeComposerFormLayoutSets where ptComposerFormLayoutSetName = ?', array('Optional Attributes'));
            /* Add Composer Layouts */
            $post = $pageType->addPageTypeComposerFormLayoutSet('Optional Attributes', 'Optional Attributes');
            /* Add Optional Attributes */
            $cct = ComposerControlType::getByHandle('collection_attribute');
            foreach ($_POST['optional_attributes'] as $oa) {
                $control = $cct->getPageTypeComposerControlByIdentifier($oa);
                $control->addToPageTypeComposerFormLayoutSet($post);
            }
        }
        $db = Loader::db();
        // Drop database row
        $db->Execute('DELETE FROM btWebliForums WHERE cID= ?', $_POST['cID']);
        $db->Execute('insert into btWebliForums (
			cID,
			display_title,
			display_date,
			date_format,
			display_author,
			display_tags,
			enable_comments,
			enable_breadcrumb,
			mod_approval,
			display_image,
			crop_image,
			image_height,
			image_width,
			add_this,
			add_this_script,
			add_this_share_html,
			add_this_follow_html,
			add_this_recommend_html,
			share_this,
			share_this_script,
			share_this_html,		
			twitter_post,
			twitter_api_key,
			twitter_api_secret,
			twitter_token,
			twitter_token_secret,
			twitter_select,
			twitter_image,
			anonymous_posts,
			captcha,
			forum_search_block,
			forum_archive_block,
			forum_tags_block,
			display_avatars,
			notification,
			email_addresses,
			page_template,
			page_type,
			optional_attributes,
			rich_text) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)', array($_POST['cID'], $_POST['display_title'], $_POST['display_date'], $_POST['date_format'], $_POST['display_author'], $_POST['display_tags'], $_POST['enable_comments'], $_POST['enable_breadcrumb'], $_POST['mod_approval'], $_POST['display_image'], $_POST['crop_image'], $_POST['image_height'], $_POST['image_width'], $_POST['add_this'], $_POST['add_this'] ? $_POST['add_this_script'] : null, $_POST['add_this'] ? $_POST['add_this_share_html'] : null, $_POST['add_this'] ? $_POST['add_this_follow_html'] : null, $_POST['add_this'] ? $_POST['add_this_recommend_html'] : null, $_POST['share_this'], $_POST['share_this'] ? $_POST['share_this_script'] : null, $_POST['share_this'] ? $_POST['share_this_html'] : null, $_POST['twitter_post'], $_POST['twitter_api_key'], $_POST['twitter_api_secret'], $_POST['twitter_token'], $_POST['twitter_token_secret'], $_POST['twitter_select'], $_POST['twitter_image'], $_POST['anonymous_posts'], $_POST['captcha'], $_POST['forum_search_block'], $_POST['forum_archive_block'], $_POST['forum_tags_block'], $_POST['display_avatars'], $_POST['notification'], $_POST['email_addresses'], $_POST['page_template'], $_POST['page_type'], $forumAttributes, $_POST['rich_text']));
        $this->save_active_category($_POST['cID']);
        $this->save_active_tab($_POST['activeTab']);
        $this->redirect(Page::getCurrentPage()->getCollectionPath());
    }
 public function getPackageItems(Package $package)
 {
     return Type::getListByPackage($package);
 }
Example #12
0
 /**
  * Create a page type and assign defaults and shit
  */
 private function createPageType(array $settings)
 {
     // Cast to an object
     $settings = (object) $settings;
     // Get the page type if it exists previously
     $pageType = PageType::getByHandle($settings->configs['handle']);
     // Delete it? Only works if the $pageType isn't assigned to this package already
     if (is_object($pageType) && !((int) $pageType->getPackageID() >= 1)) {
         $pageType->delete();
     }
     if (!is_object(PageType::getByHandle($settings->configs['handle']))) {
         /** @var $ptPage \Concrete\Core\Page\Type\Type */
         $ptPage = PageType::add(array_merge(array('ptIsFrequentlyAdded' => 1, 'ptLaunchInComposer' => 1), $settings->configs), $this->packageObject());
         // Set configured publish target
         $ptPage->setConfiguredPageTypePublishTargetObject(PublishTargetType::getByHandle('all')->configurePageTypePublishTarget($ptPage, array('ptID' => $ptPage->getPageTypeID())));
         /** @var $layoutSet \Concrete\Core\Page\Type\Composer\FormLayoutSet */
         $layoutSet = $ptPage->addPageTypeComposerFormLayoutSet('Basics', 'Basics');
         // Are we adding composer controls?
         if (property_exists($settings, 'controls') && is_array($settings->controls)) {
             // Core page properties
             $corePageProperties = $settings->controls['core_page_property'];
             if (is_array($corePageProperties)) {
                 /** @var $controlTypeObj \Concrete\Core\Page\Type\Composer\Control\Type\CorePagePropertyType */
                 $controlTypeObj = \Concrete\Core\Page\Type\Composer\Control\Type\Type::getByHandle('core_page_property');
                 if (is_object($controlTypeObj)) {
                     foreach ($corePageProperties as $controlName => $isRequired) {
                         $control = $controlTypeObj->getPageTypeComposerControlByIdentifier($controlName);
                         $control->addToPageTypeComposerFormLayoutSet($layoutSet)->updateFormLayoutSetControlRequired($isRequired);
                     }
                 }
             }
             // Blocks
             $pageBlocks = $settings->controls['block'];
             if (is_array($pageBlocks)) {
                 /** @var $controlTypeObj \Concrete\Core\Page\Type\Composer\Control\Type\CollectionAttributeType */
                 $controlTypeObj = \Concrete\Core\Page\Type\Composer\Control\Type\Type::getByHandle('block');
                 if (is_object($controlTypeObj)) {
                     foreach ($pageBlocks as $controlName) {
                         $blockTypeObj = BlockType::getByHandle($controlName);
                         if (is_object($blockTypeObj)) {
                             $control = $controlTypeObj->getPageTypeComposerControlByIdentifier($blockTypeObj->getBlockTypeID());
                             $control->addToPageTypeComposerFormLayoutSet($layoutSet);
                         }
                     }
                 }
             }
             // Attributes
             $pageAttributes = $settings->controls['collection_attribute'];
             if (is_array($pageAttributes)) {
                 /** @var $controlTypeObj \Concrete\Core\Page\Type\Composer\Control\Type\CollectionAttributeType */
                 $controlTypeObj = \Concrete\Core\Page\Type\Composer\Control\Type\Type::getByHandle('collection_attribute');
                 if (is_object($controlTypeObj)) {
                     foreach ($pageAttributes as $controlName) {
                         $collectionAttrKey = CollectionAttributeKey::getByHandle($controlName);
                         if (is_object($collectionAttrKey)) {
                             $control = $controlTypeObj->getPageTypeComposerControlByIdentifier($collectionAttrKey->getAttributeKeyID());
                             $control->addToPageTypeComposerFormLayoutSet($layoutSet);
                         }
                     }
                 }
             }
         }
     }
 }
Example #13
0
 public function add_blog_page($pkg)
 {
     /*
      * Add new Post template
      */
     //$tmplt = Template::add('pb_post', 'ProBlog Post', 'right_sidebar.png', $pkg);
     $tmplt = Template::getByHandle('right_sidebar');
     /*
      * Add new Post Page Type using new Template
      */
     $setBlogAt = Page::getByPath('/blog');
     $type = CollectionType::add(array('handle' => 'pb_post', 'name' => 'ProBlog Post', 'defaultTemplate' => $tmplt, 'allowedTemplates' => 'C', 'templates' => array($tmplt), 'ptLaunchInComposer' => 1, 'ptIsFrequentlyAdded' => 1), $pkg);
     /*
      * Add our new blog_section PublishTarget Type
      */
     $pt_target = PublishTarget::add('blog_section', 'Choose From Blog Section Pages', $pkg);
     $configuration = new BlogSectionConfiguration($pt_target);
     /*
      * Set Post Page Type to use Parent Page Configuration
      */
     $type->setConfiguredPageTypePublishTargetObject($configuration);
     /*
      * Create Post Page Type Form Layout Sets
      */
     $info = $type->addPageTypeComposerFormLayoutSet('General Info', 'Basic Blog Post Information');
     $post = $type->addPageTypeComposerFormLayoutSet('Post Content', 'Your Post Content');
     $metas = $type->addPageTypeComposerFormLayoutSet('Post Metas', 'Your Post Meta Data');
     $options = $type->addPageTypeComposerFormLayoutSet('Post Options', 'Your Post Options');
     /*
      * Create Post Page Type Form Layout Controls
      */
     $core_att_controls = PageTypeComposerControlType::getByHandle('core_page_property');
     $page_att_controls = PageTypeComposerControlType::getByHandle('collection_attribute');
     $block_controls = PageTypeComposerControlType::getByHandle('block');
     /*
      * ++++++++++++++++++++++
      * Info Tab
      * ++++++++++++++++++++++
      */
     /* Post Title */
     $name = $core_att_controls->getPageTypeComposerControlByIdentifier('name');
     $name->setPageTypeComposerControlName(t('Post Title'));
     $name->addToPageTypeComposerFormLayoutSet($info);
     /* Post Slug */
     $slug = $core_att_controls->getPageTypeComposerControlByIdentifier('url_slug');
     $slug->setPageTypeComposerControlName(t('Post Slug'));
     $slug->addToPageTypeComposerFormLayoutSet($info);
     /* Post Author */
     $control_id = CollectionAttributeKey::getByHandle('blog_author')->getAttributeKeyID();
     $blog_author = $page_att_controls->getPageTypeComposerControlByIdentifier($control_id);
     $blog_author->addToPageTypeComposerFormLayoutSet($info);
     /* Post Thumbnail */
     $control_id = CollectionAttributeKey::getByHandle('thumbnail')->getAttributeKeyID();
     $thumbnail = $page_att_controls->getPageTypeComposerControlByIdentifier($control_id);
     $thumbnail->addToPageTypeComposerFormLayoutSet($info);
     /* Post Description */
     $description = $core_att_controls->getPageTypeComposerControlByIdentifier('description');
     $description->addToPageTypeComposerFormLayoutSet($info);
     /*
      * ++++++++++++++++++++++
      * Post Tab
      * ++++++++++++++++++++++
      */
     /* Event Content */
     $control_id = BlockType::getByHandle('content')->getBlockTypeID();
     $post_content = $block_controls->getPageTypeComposerControlByIdentifier($control_id);
     $post_content->addToPageTypeComposerFormLayoutSet($post);
     /*
      * ++++++++++++++++++++++
      * Metas Tab
      * ++++++++++++++++++++++
      */
     /* Meta Title */
     $control_id = CollectionAttributeKey::getByHandle('meta_title')->getAttributeKeyID();
     $meta_title = $page_att_controls->getPageTypeComposerControlByIdentifier($control_id);
     $meta_title->addToPageTypeComposerFormLayoutSet($metas);
     /* Meta Description */
     $control_id = CollectionAttributeKey::getByHandle('meta_description')->getAttributeKeyID();
     $meta_description = $page_att_controls->getPageTypeComposerControlByIdentifier($control_id);
     $meta_description->addToPageTypeComposerFormLayoutSet($metas);
     /* Meta Keywords */
     $control_id = CollectionAttributeKey::getByHandle('meta_keywords')->getAttributeKeyID();
     $meta_keywords = $page_att_controls->getPageTypeComposerControlByIdentifier($control_id);
     $meta_keywords->addToPageTypeComposerFormLayoutSet($metas);
     /*
      * ++++++++++++++++++++++
      * Options Tab
      * ++++++++++++++++++++++
      */
     /* Post Location */
     $target = $core_att_controls->getPageTypeComposerControlByIdentifier('publish_target');
     $target->addToPageTypeComposerFormLayoutSet($options);
     /* Post Date */
     $public = $core_att_controls->getPageTypeComposerControlByIdentifier('date_time');
     $public->addToPageTypeComposerFormLayoutSet($options);
     /* Post Tags */
     $control_id = CollectionAttributeKey::getByHandle('tags')->getAttributeKeyID();
     $tags = $page_att_controls->getPageTypeComposerControlByIdentifier($control_id);
     $tags->addToPageTypeComposerFormLayoutSet($options);
     /* Post Blog Category */
     $control_id = CollectionAttributeKey::getByHandle('blog_category')->getAttributeKeyID();
     $blog_category = $page_att_controls->getPageTypeComposerControlByIdentifier($control_id);
     $blog_category->addToPageTypeComposerFormLayoutSet($options);
     /* Send to subscribers */
     $control_id = CollectionAttributeKey::getByHandle('send_subscription')->getAttributeKeyID();
     $send_subscribe = $page_att_controls->getPageTypeComposerControlByIdentifier($control_id);
     $send_subscribe->addToPageTypeComposerFormLayoutSet($options);
     /* Post To Twitter */
     $control_id = CollectionAttributeKey::getByHandle('post_to_twitter')->getAttributeKeyID();
     $twitter = $page_att_controls->getPageTypeComposerControlByIdentifier($control_id);
     $twitter->addToPageTypeComposerFormLayoutSet($options);
     /* Composer Optimize */
     $control_id = CollectionAttributeKey::getByHandle('composer_optimizer')->getAttributeKeyID();
     $composer_optimize = $page_att_controls->getPageTypeComposerControlByIdentifier($control_id);
     $composer_optimize->addToPageTypeComposerFormLayoutSet($options);
     $db = Loader::db();
     $cocID = $db->getOne("SELECT ptComposerOutputControlID FROM PageTypeComposerOutputControls WHERE pTemplateID = ? AND ptID = ?", array($tmplt->getPageTemplateID(), $type->getPageTypeID()));
     $this->install_pb_page_defaults($pkg, $cocID);
 }
Example #14
0
    die(t('Invalid set'));
}
if ($cp->canViewPage()) {
    if ($_POST['ptComposerControlTypeID'] && $_POST['ptComposerControlIdentifier']) {
        $type = PageTypeComposerControlType::getByID($_POST['ptComposerControlTypeID']);
        $control = $type->getPageTypeComposerControlByIdentifier($_POST['ptComposerControlIdentifier']);
        $layoutSetControl = $control->addToPageTypeComposerFormLayoutSet($set);
        Loader::element('page_types/composer/form/layout_set/control', array('control' => $layoutSetControl));
        exit;
    }
    ?>

	<div class="ccm-ui">
	<?php 
    $tabs = array();
    $types = PageTypeComposerControlType::getList();
    for ($i = 0; $i < count($types); $i++) {
        $type = $types[$i];
        $tabs[] = array($type->getPageTypeComposerControlTypeHandle(), $type->getPageTypeComposerControlTypeDisplayName(), $i == 0);
    }
    print $ih->tabs($tabs);
    foreach ($types as $t) {
        ?>

	<div class="ccm-tab-content" id="ccm-tab-content-<?php 
        echo $t->getPageTypeComposerControlTypeHandle();
        ?>
">
	<ul data-list="page-type-composer-control-type" class="item-select-list">
		<?php 
        $controls = $t->getPageTypeComposerControlObjects();
Example #15
0
    public function install()
    {
        $pkg = parent::install();
        // Dashboard Page
        $sp = SinglePage::add('/dashboard/forums', $pkg);
        if (is_object($sp)) {
            $sp->update(array('cName' => t('Forums'), 'cDescription' => t('Forums Dashboard')));
        }
        // Add Sidebar block set
        BlockTypeSet::add('forums', 'Forums', $pkg);
        // Add forum moderator user group
        $forumGroup = Group::getByName('Forum Moderators');
        if (!is_object($authorGroup)) {
            Group::add('Forum Moderators', t('Forum Moderators, delete, edit, approve'));
        }
        // install blocks
        BlockType::installBlockTypeFromPackage('webli_forum_post', $pkg);
        BlockType::installBlockTypeFromPackage('webli_forum_list', $pkg);
        BlockType::installBlockTypeFromPackage('webli_forum_search', $pkg);
        BlockType::installBlockTypeFromPackage('webli_forum_archive', $pkg);
        BlockType::installBlockTypeFromPackage('webli_forum_tags', $pkg);
        // Add Collection Attribute Set
        $akCat = AttributeKeyCategory::getByHandle('collection');
        $akCat->setAllowAttributeSets(AttributeKeyCategory::ASET_ALLOW_SINGLE);
        $akCatSet = $akCat->addSet('forums', t('Forums'), $pkg);
        // Add Collection Attributes
        $attribute = CollectionAttributeKey::getByHandle('forum_post');
        if (!is_object($attribute)) {
            $att = AttributeType::getByHandle('textarea');
            // add to attribute set
            CollectionAttributeKey::add($att, array('akHandle' => 'forum_post', 'akName' => t('Forum Post'), 'akIsSearchableIndexed' => true, 'akTextareaDisplayMode' => 'rich_text'), $pkg)->setAttributeSet($akCatSet);
        }
        $attribute = CollectionAttributeKey::getByHandle('forum_category');
        if (!is_object($attribute)) {
            $att = AttributeType::getByHandle('boolean');
            // add to attribute set
            CollectionAttributeKey::add($att, array('akHandle' => 'forum_category', 'akName' => t('Forum Category')), $pkg)->setAttributeSet($akCatSet);
        }
        $attribute = CollectionAttributeKey::getByHandle('forum_email');
        if (!is_object($attribute)) {
            $att = AttributeType::getByHandle('text');
            // add to attribute set
            CollectionAttributeKey::add($att, array('akHandle' => 'forum_email', 'akName' => t('Forum Email Address'), 'akIsSearchableIndexed' => true), $pkg)->setAttributeSet($akCatSet);
        }
        $attribute = CollectionAttributeKey::getByHandle('forum_name');
        if (!is_object($attribute)) {
            $att = AttributeType::getByHandle('text');
            // add to attribute set
            CollectionAttributeKey::add($att, array('akHandle' => 'forum_name', 'akName' => t('Forum Name'), 'akIsSearchableIndexed' => true), $pkg)->setAttributeSet($akCatSet);
        }
        $attribute = CollectionAttributeKey::getByHandle('forum_pin');
        if (!is_object($attribute)) {
            $att = AttributeType::getByHandle('boolean');
            // add to attribute set
            CollectionAttributeKey::add($att, array('akHandle' => 'forum_pin', 'akName' => t('Pin Forum Post')), $pkg)->setAttributeSet($akCatSet);
        }
        $attribute = CollectionAttributeKey::getByHandle('forum_post_approved');
        if (!is_object($attribute)) {
            $att = AttributeType::getByHandle('boolean');
            // add to attribute set
            CollectionAttributeKey::add($att, array('akHandle' => 'forum_post_approved', 'akName' => t('Forum Post Approved')), $pkg)->setAttributeSet($akCatSet);
        }
        $attribute = CollectionAttributeKey::getByHandle('tags');
        if (!is_object($attribute)) {
            $att = AttributeType::getByHandle('select');
            // add to attribute set
            CollectionAttributeKey::add($att, array('akHandle' => 'tags', 'akName' => t('Tags'), 'akIsSearchableIndexed' => true), $pkg)->setAttributeSet($akCatSet);
        }
        $attribute = CollectionAttributeKey::getByHandle('forum_image');
        if (!is_object($attribute)) {
            $att = AttributeType::getByHandle('image_file');
            // add to attribute set
            CollectionAttributeKey::add($att, array('akHandle' => 'forum_image', 'akName' => t('Forum Image')), $pkg)->setAttributeSet($akCatSet);
            $addAttribute = CollectionAttributeKey::getByHandle('forum_image');
        }
        // Add top level Forums Page
        $forumPage = \Page::getByPath('/forums');
        if (!is_object($forumPage) || $forumPage->cID == null) {
            $parentPage = \Page::getByID(1);
            $pageType = \PageType::getByHandle('right_sidebar');
            $template = \PageTemplate::getByHandle('right_sidebar');
            $forumsPage = $parentPage->add($pageType, array('cName' => t('Forums'), 'cDescription' => t('Top Level Forums Page'), 'cHandle ' => 'forums'), $template);
            //Add forum_category page attribute
            $forumsPage->setAttribute('forum_category', 1);
        }
        // Add top Forum Search Results Page
        $forumSearchPage = \Page::getByPath('/forum-search');
        if (!is_object($forumSearchPage) || $forumSearch->cID == null) {
            $parentPage = \Page::getByID(1);
            $pageType = \PageType::getByHandle('right_sidebar');
            $template = \PageTemplate::getByHandle('right_sidebar');
            $forumSearchPage = $parentPage->add($pageType, array('cName' => t('Forum Search'), 'cDescription' => t('Forum Search Page'), 'cHandle ' => 'forum-search'), $template);
            $forumSearchPage->setAttribute('exclude_nav', 1);
        }
        // Add Forum Post Page Template
        if (!is_object(PageTemplate::getByHandle('forum_post'))) {
            $pageTemplate = PageTemplate::add('forum_post', 'Forum Post', 'landing.png', $pkg);
        }
        // Add Forum Post Page Type
        if (!is_object(PageType::getByHandle('forum_post'))) {
            $data = array('handle' => 'forum_post', 'name' => 'Forum Post', 'ptLaunchInComposer' => true, 'ptIsFrequentlyAdded' => true, 'defaultTemplate' => PageTemplate::getByHandle('forum_post'), 'allowedTemplates' => 'C', 'templates' => array(PageTemplate::getByHandle('forum_post')));
            $pt = PageType::add($data, $pkg);
        }
        /* Get blog_post page template */
        $pageType = \PageType::getByHandle('forum_post');
        $ctTemplate = $pageType->getPageTypeDefaultPageTemplateObject();
        $forumPostTemplate = $pageType->getPageTypePageTemplateDefaultPageObject($ctTemplate);
        /* Add Composer Layouts */
        $basics = $pageType->addPageTypeComposerFormLayoutSet('Basics', 'Basic Info');
        $post = $pageType->addPageTypeComposerFormLayoutSet('Forum Post', 'Forum Post');
        /* Add Built in Properties */
        $cct = ComposerControlType::getByHandle('core_page_property');
        /* Post Title */
        $control = $cct->getPageTypeComposerControlByIdentifier('name');
        $control->addToPageTypeComposerFormLayoutSet($basics);
        /* Post Slug */
        $control = $cct->getPageTypeComposerControlByIdentifier('url_slug');
        $control->addToPageTypeComposerFormLayoutSet($basics);
        /* Post Publish Location */
        $control = $cct->getPageTypeComposerControlByIdentifier('publish_target');
        $control->addToPageTypeComposerFormLayoutSet($basics);
        /* Post Date */
        $control = $cct->getPageTypeComposerControlByIdentifier('date_time');
        $control->addToPageTypeComposerFormLayoutSet($basics);
        /* Post Author */
        $control = $cct->getPageTypeComposerControlByIdentifier('user');
        $control->addToPageTypeComposerFormLayoutSet($basics);
        /* Add Attributes */
        $cct = ComposerControlType::getByHandle('collection_attribute');
        /* Forum Pin */
        $attributeId = CollectionAttributeKey::getByHandle('forum_pin')->getAttributeKeyID();
        $control = $cct->getPageTypeComposerControlByIdentifier($attributeId);
        $control->addToPageTypeComposerFormLayoutSet($post);
        /* Forum Post Approved */
        $attributeId = CollectionAttributeKey::getByHandle('forum_post_approved')->getAttributeKeyID();
        $control = $cct->getPageTypeComposerControlByIdentifier($attributeId);
        $control->addToPageTypeComposerFormLayoutSet($post);
        /* Forum Post */
        $attributeId = CollectionAttributeKey::getByHandle('forum_post')->getAttributeKeyID();
        $control = $cct->getPageTypeComposerControlByIdentifier($attributeId);
        $control->addToPageTypeComposerFormLayoutSet($post);
        /* Forum Image */
        $attributeId = CollectionAttributeKey::getByHandle('forum_image')->getAttributeKeyID();
        $control = $cct->getPageTypeComposerControlByIdentifier($attributeId);
        $control->addToPageTypeComposerFormLayoutSet($post);
        /* Forum Tags */
        $attributeId = CollectionAttributeKey::getByHandle('tags')->getAttributeKeyID();
        $control = $cct->getPageTypeComposerControlByIdentifier($attributeId);
        $control->addToPageTypeComposerFormLayoutSet($post);
        /* Add default Blocks to page template */
        $ctTemplate = $pageType->getPageTypeDefaultPageTemplateObject();
        $forumPostTemplate = $pageType->getPageTypePageTemplateDefaultPageObject($ctTemplate);
        //Add exclude_nav page attributeto Forum Post Template
        $forumPostTemplate->setAttribute('exclude_nav', 1);
        // Get Forum Category Page
        $forumCategoryPage = Page::getByPath('/forums');
        //Add forum_category page attribute
        $forumCategoryPage->setAttribute('forum_category', 1);
        // Get Forum Search Page
        $forumSearchPage = Page::getByPath('/forum-search');
        //Add exclude_nav page attribute
        $forumSearchPage->setAttribute('exclude_nav', 1);
        // Install Blocks
        //install Forum Post Block
        $forumPost = BlockType::getByHandle('webli_forum_post');
        $forumPostData = array();
        $forumCategoryPage->addBlock($forumPost, 'Main', $forumPostData);
        //install forum post block to forum_post template
        $forumPostTemplate->addBlock($forumPost, 'Forum Post', $forumPostData);
        //install Forum List Block on Forums top level page
        $forumList = BlockType::getByHandle('webli_forum_list');
        $forumListData = array();
        $forumListData['num'] = 25;
        $forumListData['paginate'] = 1;
        $forumListData['cParentID'] = $forumCategoryPage->getCollectionID();
        $forumListData['orderBy'] = 'chrono_desc';
        $forumListData['use_content'] = 1;
        $forumListData['truncateSummaries'] = 1;
        $forumListData['truncateChars'] = 200;
        $forumListData['display_author'] = 1;
        $forumListData['includeDate'] = 1;
        $forumListData['includeName'] = 1;
        $forumListData['includeDescription'] = 1;
        $forumListData['date_format'] = 'l F j, Y g:ia';
        $forumListData['forum_pin'] = 1;
        $forumListData['forumReplies'] = 3;
        $forumListData['thumb_width'] = 250;
        $forumListData['thumb_height'] = 150;
        $forumListData['crop'] = 1;
        $forumListData['noResultsMessage'] = 'No Forum Posts available to view.';
        $forumCategoryPage->addBlock($forumList, 'Main', $forumListData);
        // Install Forum Search Block on forum_post Page template
        $forumSearch = BlockType::getByHandle('webli_forum_search');
        $forumSearchData = array();
        $forumSearchData['title'] = 'Forum Search';
        $forumSearchData['postTo_cID'] = $forumSearchPage->getCollectionID();
        $forumSearchData['baseSearchPath'] = 'PARENT';
        $forumPostTemplate->addBlock($forumSearch, 'Sidebar', $forumSearchData);
        //install Forum Search Block Forums forum_category Page
        $forumSearchData = array();
        $forumSearchData['title'] = 'Forum Search';
        $forumSearchData['postTo_cID'] = $forumSearchPage->getCollectionID();
        $forumSearchData['baseSearchPath'] = $forumCategoryPage->getCollectionPath();
        $forumCategoryPage->addBlock($forumSearch, 'Sidebar', $forumSearchData);
        //install Forum Search Block on Forum Search Page
        $forumSearchData = array();
        $forumSearchData['title'] = 'Forum Search';
        $forumSearchData['buttonText'] = 'Search';
        $forumSearchData['baseSearchPath'] = $forumCategoryPage->getCollectionPath();
        $forumSearchPage->addBlock($forumSearch, 'Main', $forumSearchData);
        //install Forum Archive Block on forum_post template
        $forumArchive = BlockType::getByHandle('webli_forum_archive');
        $forumArchiveData = array();
        $forumArchiveData['title'] = 'Forum Archive';
        $forumArchiveData['cParentID'] = 'PARENT';
        $forumPostTemplate->addBlock($forumArchive, 'Sidebar', $forumArchiveData);
        //install Forum Archive Block
        $forumArchiveData = array();
        $forumArchiveData['title'] = 'Forum Archive';
        $forumArchiveData['cParentID'] = $forumCategoryPage->getCollectionID();
        $forumCategoryPage->addBlock($forumArchive, 'Sidebar', $forumArchiveData);
        $forumSearchPage->addBlock($forumArchive, 'Sidebar', $forumArchiveData);
        //install Forum Tags Block on forum_post template
        $forumTags = BlockType::getByHandle('webli_forum_tags');
        $forumTagsData = array();
        $forumTagsData['title'] = 'Forum Tags';
        $forumTagsData['cParentID'] = 'PARENT';
        $forumTagsData['postTo_cID'] = $forumSearchPage->getCollectionID();
        $forumTagsData['baseSearchPath'] = $forumCategoryPage->getCollectionPath();
        $forumTagsData['min_height'] = 15;
        $forumTagsData['max_height'] = 30;
        $forumPostTemplate->addBlock($forumTags, 'Sidebar', $forumTagsData);
        //install Forum Tags Block
        $forumTagsData = array();
        $forumTagsData['title'] = 'Forum Tags';
        $forumTagsData['cParentID'] = $forumCategoryPage->getCollectionID();
        $forumTagsData['postTo_cID'] = $forumSearchPage->getCollectionID();
        $forumTagsData['baseSearchPath'] = $forumCategoryPage->getCollectionPath();
        $forumTagsData['min_height'] = 15;
        $forumTagsData['max_height'] = 30;
        $forumCategoryPage->addBlock($forumTags, 'Sidebar', $forumTagsData);
        $forumSearchPage->addBlock($forumTags, 'Sidebar', $forumTagsData);
        //install Conversations block to forum_post template
        $conversations = BlockType::getByHandle('core_conversation');
        $conversationsData = array();
        $conversationsData['attachmentsEnabled'] = 0;
        $conversationsData['addMessageLabel'] = t('Add a Comment');
        $conversationsData['itemsPerPage'] = 25;
        $conversationsData['enablePosting'] = 1;
        $conversationsData['enableCommentRating'] = 1;
        $conversationsData['paginate'] = 1;
        $conversationsData['displayMode'] = 'threaded';
        $conversationsData['displayPostingForm'] = 'bottom';
        $forumPostTemplate->addBlock($conversations, 'Forum Replies', $conversationsData);
        $db = Loader::db();
        // insert default page category values
        $db->Execute('insert into btWebliForums (
				cID,
				display_title,
				display_author,
				display_date,
				date_format,
				display_tags,
				enable_comments,
				enable_breadcrumb,
				crop_image,
				display_image,
				image_height,
				image_width,
				display_avatars,
				forum_search_block,
				forum_archive_block,
				forum_tags_block,
				rich_text,
				page_template,
				page_type
				) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)', array(0, 1, 1, 1, 'l F j, Y g:ia', 1, 1, 1, 0, 1, 350, 250, 1, 1, 1, 1, 1, $pageTemplate->getPageTemplateID(), $pageType->getPageTypeID()));
        // Add Sample Forum Post
        $forumsPage = \Page::getByPath('/forums');
        if (is_object($forumsPage) || $forumsPage->cID != null) {
            $pageType = \PageType::getByHandle('forum_post');
            $template = \PageTemplate::getByHandle('forum_post');
            $samplePost = $forumsPage->add($pageType, array('cName' => 'My First Forum Post', 'cDescription' => 'First Forum Post', 'cHandle ' => 'first-forum-post'), $template);
            $samplePost->setAttribute('forum_post', t('
				<p>Hey, Congratulations, you have installed Forums for Concrete5.  Forums will give visitors to your site frontend
				editing capabilities to add Forum Messages and reply to existing messages.</p>
				<p>Administrators have access to the Forums Dashboard Page to customize and manage your forums.</p>
				<p>So get your forum started and if you have any comments or questions visit <a href="http://forums.webli.us" target="_blank">forums.webli.us</a></p>'));
            $samplePost->setAttribute('forum_post_approved', 1);
            $samplePost->setAttribute('tags', array('Forums', t('Frist Message')));
        }
        $cms = Core::make('app');
        $cms->clearCaches();
    }
Example #16
0
 public function getPageTypeComposerControlTypeObject()
 {
     return PageTypeComposerControlType::getByID($this->ptComposerControlTypeID);
 }
 public function skipItem()
 {
     $editor = Type::getByHandle($this->object->getHandle());
     return is_object($editor);
 }