Example #1
0
 public function publish()
 {
     if ($this->validateAction()) {
         $r = $this->save();
         $ptr = $r[0];
         $pagetype = $r[1];
         $outputControls = $r[2];
         $c = $this->page;
         $e = $ptr->error;
         $validator = $pagetype->getPageTypeValidatorObject();
         if ($this->page->isPageDraft()) {
             $target = \Page::getByID($this->page->getPageDraftTargetParentPageID());
         } else {
             $target = \Page::getByID($this->page->getCollectionParentID());
         }
         $e->add($validator->validatePublishLocationRequest($target));
         $e->add($validator->validatePublishDraftRequest($c));
         $ptr->setError($e);
         if (!$e->has()) {
             $pagetype->publish($c);
             $ptr->setRedirectURL(Loader::helper('navigation')->getLinkToCollection($c));
         }
         $ptr->outputJSON();
     } else {
         throw new \Exception(t('Access Denied.'));
     }
 }
 public function getByID($cID)
 {
     $c = \Page::getByID($cID);
     if ($c->getCollectionTypeHandle() == STACK_CATEGORY_PAGE_TYPE) {
         return $this->application->make('Concrete\\Core\\Page\\Stack\\Folder\\Folder', array($c));
     }
 }
Example #3
0
 public function cancel(WorkflowProgress $wp)
 {
     $c = Page::getByID($this->getRequestedPageID());
     $wpr = new WorkflowProgressResponse();
     $wpr->setWorkflowProgressResponseURL(BASE_URL . DIR_REL . '/' . DISPATCHER_FILENAME . '?cID=' . $c->getCollectionID());
     return $wpr;
 }
Example #4
0
    public function publish() {
		if ($this->validateAction()) {
			$r = $this->save();
			$ptr = $r[0];
			$pagetype = $r[1];
			$outputControls = $r[2];

			$c = $this->page;
			$e = $ptr->error;
			if (!$c->getPageDraftTargetParentPageID()) {
				$e->add(t('You must choose a page to publish this page beneath.'));
			} else {
				$target = \Page::getByID($c->getPageDraftTargetParentPageID());
				$ppc = new \Permissions($target);
				$pagetype = $c->getPageTypeObject();
				if (!$ppc->canAddSubCollection($pagetype)) {
					$e->add(t('You do not have permission to publish a page in this location.'));
				}
			}
			$validator = $pagetype->getPageTypeValidatorObject();
			$e->add($validator->validatePublishDraftRequest($c));

			$ptr->setError($e);

			if (!$e->has()) {
				$pagetype->publish($c);
				$ptr->setRedirectURL(Loader::helper('navigation')->getLinkToCollection($c));
			}
			$ptr->outputJSON();
		} else {
			throw new \Exception(t('Access Denied.'));
		}
	}
 public function publish()
 {
     $r = $this->save();
     $ptr = $r[0];
     $pagetype = $r[1];
     $outputControls = $r[2];
     $c = $this->page;
     $e = Loader::helper('validation/error');
     if (!$c->getPageDraftTargetParentPageID()) {
         $e->add(t('You must choose a page to publish this page beneath.'));
     } else {
         $target = \Page::getByID($c->getPageDraftTargetParentPageID());
         $ppc = new \Permissions($target);
         if (!$ppc->canAddSubCollection($target)) {
             $e->add(t('You do not have permission to publish a page in this location.'));
         }
     }
     foreach ($outputControls as $oc) {
         if ($oc->isPageTypeComposerFormControlRequiredOnThisRequest()) {
             $r = $oc->validate();
             if ($r instanceof \Concrete\Core\Error\Error) {
                 $e->add($r);
             }
         }
     }
     $ptr->setError($e);
     if (!$e->has()) {
         $pagetype->publish($c);
         $ptr->setRedirectURL(Loader::helper('navigation')->getLinkToCollection($c));
     }
     $ptr->outputJSON();
 }
Example #6
0
 public function testThemeGridAreaLayoutContainer()
 {
     $layout = \Concrete\Core\Area\Layout\ThemeGridLayout::add();
     $layout->addLayoutColumn()->setAreaLayoutColumnSpan(4);
     $column = $layout->addLayoutColumn();
     $column->setAreaLayoutColumnSpan(2);
     $column->setAreaLayoutColumnOffset(2);
     $layout->addLayoutColumn()->setAreaLayoutColumnSpan(6);
     $elemental = \Concrete\Core\Page\Theme\Theme::add('elemental');
     Page::addHomePage();
     Core::make('cache/request')->disable();
     $c = Page::getByID(1);
     $c->setTheme($elemental);
     $c = Page::getByID(1);
     $req = Request::getInstance();
     $req->setCurrentPage($c);
     $layout = \Concrete\Core\Area\Layout\Layout::getByID(1);
     $this->assertInstanceOf('\\Concrete\\Core\\Area\\Layout\\ThemeGridLayout', $layout);
     $columns = $layout->getAreaLayoutColumns();
     $this->assertEquals(3, count($columns));
     $formatter = $layout->getFormatter();
     $this->assertInstanceOf('\\Concrete\\Core\\Area\\Layout\\Formatter\\ThemeGridFormatter', $formatter);
     $this->assertEquals('<div class="row"></div>', (string) $formatter->getLayoutContainerHtmlObject());
     $req->clearCurrentPage();
 }
 public function run()
 {
     $js = Loader::helper('json');
     $pl = new PageList();
     $pl->filterByCollectionTypeHandle('city');
     $pages = $pl->get();
     $updated = 0;
     $not = 0;
     echo "Loading city coordinates.. \n";
     foreach ($pages as $page) {
         if (!trim($page->getAttribute('latlng')) || trim($page->getAttribute('latlng')) === ',') {
             $parent = Page::getByID($page->getCollectionParentID());
             $city = "{$page->getCollectionName()}, {$parent->getCollectionName()}";
             $cityLocation = file_get_contents("https://maps.google.com/maps/api/geocode/json?address=" . urlencode($city) . "&sensor=false&key=AIzaSyAvsH_wiFHJCuMPPuVifJ7QgaRCStKTdZM");
             $responseObj = $js->decode($cityLocation);
             if ($responseObj->status != 'ZERO_RESULTS') {
                 $page->setAttribute('latlng', $responseObj->results[0]->geometry->location->lat . "," . $responseObj->results[0]->geometry->location->lng);
                 $updated++;
             } else {
                 $not++;
             }
         }
     }
     return t("{$updated} cities geocoded, {$not} cities failed lookup.");
 }
Example #8
0
 public function view($nodeID = 1, $auxMessage = false)
 {
     $dh = Loader::helper('concrete/dashboard/sitemap');
     if ($dh->canRead()) {
         $this->set('nodeID', $nodeID);
         $nodes = $dh->getSubNodes($nodeID, 1, false, false);
         $instanceID = time();
         $this->set('listHTML', $dh->outputRequestHTML($instanceID, 'explore', false, $nodes));
         $this->set('instanceID', $instanceID);
     }
     if (isset($_REQUEST['task']) && isset($_REQUEST['cNodeID'])) {
         $nc = Page::getByID($_REQUEST['cNodeID']);
         if ($_REQUEST['task'] == 'send_to_top') {
             $nc->movePageDisplayOrderToTop();
         } else {
             if ($_REQUEST['task'] == 'send_to_bottom') {
                 $nc->movePageDisplayOrderToBottom();
             }
         }
         $this->redirect('/dashboard/sitemap/explore', $nc->getCollectionParentID(), 'order_updated');
     }
     if ($auxMessage != false) {
         switch ($auxMessage) {
             case 'order_updated':
                 $this->set('message', t('Sort order saved'));
                 break;
         }
     }
     $this->set('dh', $dh);
 }
 public function page()
 {
     //create the model object
     $cal = new Page();
     //send the webclass
     $webClass = __CLASS__;
     //by pass the form
     $cmd = isset($_GET['cmd']) ? addslashes($_GET['cmd']) : 'read';
     if ($cmd == "edit") {
         //Crud::createForm($obj,$webClass);
         //die('edit');
         $id = isset($_GET['id']) ? addslashes($_GET['id']) : 0;
         if ($id) {
             $cal->getByID($id);
         }
         $mps['id'] = $id;
         $mps['obj'] = $cal;
         Mold::plugin("Page", "pageForm", $mps);
         exit;
     }
     $cid = addslashes($_GET['cid']);
     if ($cid != "") {
         $_SESSION['pageConID'] = $cid;
     } else {
         //unset($_SESSION['pageConID']);
     }
     $cal->read_filter_array = array("post_gallery_id" => $_SESSION['pageConID']);
     //echo $cid;
     //pr($cal);
     //run the crud utility
     Crud::run($cal, $webClass);
     //pr($mps);
 }
Example #10
0
 public function getTranslatedPages($page = false, $sans = false)
 {
     $langms = new MultilingualSection();
     if ($page) {
         $ms = MultilingualSection::getByID($page->getCollectionID());
     } else {
         $page = Page::getCurrentPage();
         $ms = MultilingualSection::getCurrentSection();
     }
     if (is_object($ms)) {
         $lang = $ms->getLocale();
     }
     if ($sans) {
         $locales = self::getLocales($sans);
     } else {
         $locales = self::getLocales($lang);
     }
     $tpages = array();
     foreach ($locales as $locale) {
         $langms->msLocale = $locale;
         $id = $langms->getTranslatedPageID($page);
         $transPage = Page::getByID($id);
         $transPage->locale = $locale;
         if ($id > 0) {
             $tpages[$locale] = $transPage;
         }
     }
     return $tpages;
 }
Example #11
0
 public function preview()
 {
     $request = \Request::getInstance();
     $c = \Page::getByID($this->request->get('cID'));
     $cp = new \Permissions($c);
     if ($cp->canViewPageVersions()) {
         $c->loadVersionObject(\Core::make('helper/security')->sanitizeInt($_REQUEST['cvID']));
         $spoofed_request = \Request::createFromGlobals();
         if ($device_handle = $request->headers->get('x-device-handle')) {
             if ($device = \Core::make('device/manager')->get($device_handle)) {
                 if ($agent = $device->getUserAgent()) {
                     $spoofed_request->headers->set('User-Agent', $agent);
                 }
             }
         }
         $spoofed_request->setCustomRequestUser(-1);
         $spoofed_request->setCurrentPage($c);
         \Request::setInstance($spoofed_request);
         $controller = $c->getPageController();
         $controller->runTask('view', array());
         $view = $controller->getViewObject();
         $response = new \Response();
         $content = $view->render();
         // Reset just in case.
         \Request::setInstance($request);
         $response->setContent($content);
         $response->send();
         exit;
     }
 }
Example #12
0
 function view()
 {
     $nextPage = $this->getNextCollection();
     $previousPage = $this->getPreviousCollection();
     $parentPage = Page::getByID(Page::getCurrentPage()->getCollectionParentID());
     if ($this->linkStyle == 'page_name') {
         $nextLinkText = !$nextPage ? '' : $nextPage->getCollectionName();
         $previousLinkText = !$previousPage ? '' : $previousPage->getCollectionName();
         $parentLinkText = !$parentPage ? '' : $parentPage->getCollectionName();
     } else {
         $nextLinkText = $this->nextLabel;
         $previousLinkText = $this->previousLabel;
         $parentLinkText = $this->parentLabel;
     }
     if ($this->showArrows) {
         $nextLinkText = $nextLinkText . ' &raquo;';
         $previousLinkText = '&laquo; ' . $previousLinkText;
     }
     $this->set('nextCollection', $nextPage);
     $this->set('previousCollection', $previousPage);
     $this->set('parentCollection', $parentPage);
     $this->set('nextLinkText', $nextLinkText);
     $this->set('previousLinkText', $previousLinkText);
     $this->set('parentLinkText', $parentLinkText);
 }
Example #13
0
 public function action_post()
 {
     // happens through ajax
     $pagetype = PageType::getByID($this->ptID);
     if (is_object($pagetype) && $this->enablePostingFromGathering) {
         $ccp = new Permissions($pagetype);
         if ($ccp->canEditPageTypeInComposer()) {
             $ct = PageType::getByID($this->post('ptComposerPageTypeID'));
             $availablePageTypes = $pagetype->getComposerPageTypeObjects();
             if (!is_object($ct) && count($availablePageTypes) == 1) {
                 $ct = $availablePageTypes[0];
             }
             $c = Page::getCurrentPage();
             $e = $pagetype->validatePublishRequest($ct, $c);
             $r = new PageTypePublishResponse($e);
             if (!$e->has()) {
                 $d = $pagetype->createDraft($ct);
                 $d->setPageDraftTargetParentPageID($c->getCollectionID());
                 $d->saveForm();
                 $d->publish();
                 $nc = Page::getByID($d->getCollectionID(), 'RECENT');
                 $link = Core::make('helper/navigation')->getLinkToCollection($nc, true);
                 $r->setRedirectURL($link);
             }
             $r->outputJSON();
         }
     }
     exit;
 }
Example #14
0
 public function setPermissionObject(Block $b)
 {
     $this->permissionObject = $b;
     // if the area overrides the collection permissions explicitly (with a one on the override column) we check
     if ($b->overrideAreaPermissions()) {
         $this->permissionObjectToCheck = $b;
     } else {
         $a = $b->getBlockAreaObject();
         if (is_object($a)) {
             if ($a->overrideCollectionPermissions()) {
                 $this->permissionObjectToCheck = $a;
             } elseif ($a->getAreaCollectionInheritID()) {
                 $mcID = $a->getAreaCollectionInheritID();
                 $mc = Page::getByID($mcID, 'RECENT');
                 $ma = Area::get($mc, $a->getAreaHandle());
                 if ($ma->overrideCollectionPermissions()) {
                     $this->permissionObjectToCheck = $ma;
                 } else {
                     $this->permissionObjectToCheck = $ma->getAreaCollectionObject();
                 }
             } else {
                 $this->permissionObjectToCheck = $a->getAreaCollectionObject();
             }
         } else {
             $this->permissionObjectToCheck = Page::getCurrentPage();
         }
     }
 }
Example #15
0
 public function save()
 {
     $this->verify($this->post('ctID'));
     if ($this->post('ctIncludeInComposer')) {
         switch ($this->post('ctComposerPublishPageMethod')) {
             case 'PARENT':
                 $page = Page::getByID($this->post('ctComposerPublishPageParentID'));
                 if ($page->isError()) {
                     $this->error->add(t('Parent page not selected'));
                 } else {
                     $this->ct->saveComposerPublishTargetPage($page);
                 }
                 break;
             case 'PAGE_TYPE':
                 $ct = CollectionType::getByID($this->post('ctComposerPublishPageTypeID'));
                 $this->ct->saveComposerPublishTargetPageType($ct);
                 break;
             default:
                 $this->ct->saveComposerPublishTargetAll();
                 break;
         }
         if (!$this->error->has()) {
             $this->ct->saveComposerAttributeKeys($this->post('composerAKID'));
             $this->redirect('/dashboard/pages/types/composer', 'view', $this->ct->getCollectionTypeID(), 'updated');
         } else {
             $this->view($this->ct->getCollectionTypeID());
         }
     } else {
         $this->ct->resetComposerData();
         $this->redirect("/dashboard/pages/types", "clear_composer");
     }
 }
 public function favorite()
 {
     header('Content-Type: application/json');
     $u = new User();
     $data = $this->post();
     $pageID = (int) $this->get('id');
     $p = \Page::getByID($pageID);
     if ($u->getUserID() && !$p->isError() && $p->isSystemPage() == false) {
         //If user favorited remove entry else add entry
         $db = Database::get();
         $res = $db->GetRow("SELECT mpRelationID as rel FROM MultilingualPageRelations WHERE cID=?", array($pageID));
         $relation = $res['rel'];
         // var_dump($relation);
         // $res = $db->GetAll("SELECT cID FROM MultilingualPageRelations WHERE mpRelationID=?",array($relation));
         // var_dump($res);
         // if($res['rel'])
         // $res = $db->GetRow("SELECT Count(fav.cID) as num FROM MultilingualPageRelations mppr LEFT JOIN UserPageFavorites fav ON mppr.cID = fav.cID where uID = ? and mpRelationID = ?",array((int)$u->getUserID(),$rel));
         $res = $db->GetRow("SELECT Count(cID) as num FROM UserPageFavorites WHERE uID=? and cID in (SELECT cID FROM MultilingualPageRelations WHERE mpRelationID=?)", array((int) $u->getUserID(), $relation));
         // var_dump($res);
         if ($res['num'] > 0) {
             //Favorite Product
             $db->Execute('DELETE FROM UserPageFavorites WHERE cID in (SELECT cID FROM MultilingualPageRelations WHERE mpRelationID=?) and uID=?', array($relation, (int) $u->getUserID()));
             echo json_encode(array('status' => 'unfavorited'));
         } else {
             //Unfavorite Product
             $db->Execute('INSERT INTO UserPageFavorites(cID,uID) VALUES(?,?)', array($pageID, (int) $u->getUserID()));
             echo json_encode(array('status' => 'favorited'));
         }
         exit;
     } else {
         echo json_encode(array('status' => 'not_logged'));
     }
 }
Example #17
0
 public function setPermissionObject(Area $a)
 {
     $ax = $a;
     if ($a->isGlobalArea()) {
         $cx = Stack::getByName($a->getAreaHandle());
         $a = Area::get($cx, STACKS_AREA_NAME);
     }
     $this->permissionObject = $a;
     // if the area overrides the collection permissions explicitly (with a one on the override column) we check
     if ($a->overrideCollectionPermissions()) {
         $this->permissionObjectToCheck = $a;
     } else {
         if ($a->getAreaCollectionInheritID() > 0) {
             // in theory we're supposed to be inheriting some permissions from an area with the same handle,
             // set on the collection id specified above (inheritid). however, if someone's come along and
             // reverted that area to the page's permissions, there won't be any permissions, and we
             // won't see anything. so we have to check
             $areac = Page::getByID($a->getAreaCollectionInheritID());
             $inheritArea = Area::get($areac, $a->getAreaHandlE());
             if (is_object($inheritArea) && $inheritArea->overrideCollectionPermissions()) {
                 // okay, so that area is still around, still has set permissions on it. So we
                 // pass our current area to our grouplist, userinfolist objects, knowing that they will
                 // smartly inherit the correct items.
                 $this->permissionObjectToCheck = $inheritArea;
             }
         }
         if (!$this->permissionObjectToCheck) {
             $this->permissionObjectToCheck = $a->getAreaCollectionObject();
         }
     }
 }
Example #18
0
function sendFormAction()
{
    if (empty($_POST['bID'])) {
        return error(t('Invalid form submission (missing bID)'));
    } else {
        $block = Block::getByID($_POST['bID']);
        $blockController = new FormController($block);
        $blockController->noSubmitFormRedirect = true;
        $redirectURL = '';
        // //Handle redirect-on-success...
        if ($blockController->redirectCID > 0) {
            $redirectPage = Page::getByID($blockController->redirectCID);
            if ($redirectPage->cID) {
                $redirectURL = Loader::helper('navigation')->getLinkToCollection($redirectPage, true);
            }
        }
        $blockController->redirectCID = 0;
        //reset this in block controller, otherwise it will exit before returning the data we need!
        try {
            $success = $blockController->action_submit_form($_POST['bID']);
            if ($success != null && $success == false) {
                return error(t('Invalid form submission (invalid block ids)'));
            }
        } catch (Exception $e) {
            return error($e->getMessage());
        }
        $fieldErrors = $blockController->get('errors');
        if (is_array($fieldErrors)) {
            foreach ($fieldErrors as $key => $value) {
                return error($fieldErrors[$key]);
            }
        }
        return success($blockController->thankyouMsg);
    }
}
Example #19
0
 /**
  * Views the composer edit page.
  * @param string|int $ctID The collection type
  * @param string|int $cPublishParentID The parent page under which to publish
  */
 public function view($ctID = false, $cPublishParentID = false)
 {
     // Load Page objects from their IDs
     $ct = $this->setCollectionType($ctID);
     $cPublishParent = Page::getByID($cPublishParent);
     // If we couldn't load a collection type, send them to the composer menu
     if (!is_object($ct)) {
         $ctArray = CollectionType::getComposerPageTypes();
         // If there's only one collection type, just choose that one
         if (count($ctArray) === 1) {
             $ct = $ctArray[0];
             $this->redirect('/dashboard/composer/write', $ct->getCollectionTypeID());
             exit;
         }
         // Otherwise, they need to choose the CT from this array of types
         $this->set('ctArray', $ctArray);
     } else {
         // CT was set, so create a draft of this type
         $entry = ComposerPage::createDraft($ct);
         if (is_object($entry)) {
             // Check if we have a parent specified to create this draft under
             if ($cPublishParentID && is_object($cPublishParent)) {
                 // Make this draft under the specified parent
                 $entry->setComposerDraftPublishParentID($cPublishParentID);
             }
             // New draft is created, so start editing it
             $this->redirect('/dashboard/composer/write', 'edit', $entry->getCollectionID());
         } else {
             // Something failed when trying to create a draft, so send back to drafts folder
             $this->redirect('/dashboard/composer/drafts');
         }
     }
 }
 public function import(\SimpleXMLElement $sx)
 {
     if (isset($sx->singlepages)) {
         foreach ($sx->singlepages->page as $p) {
             $pkg = static::getPackageObject($p['package']);
             if (isset($p['global']) && (string) $p['global'] === 'true') {
                 $spl = Single::addGlobal($p['path'], $pkg);
             } else {
                 $root = false;
                 if (isset($p['root']) && (string) $p['root'] === 'true') {
                     $root = true;
                 }
                 $siteTree = null;
                 if (isset($this->home)) {
                     $siteTree = $this->home->getSiteTreeObject();
                 } else {
                     $home = \Page::getByID(HOME_CID);
                     $siteTree = $home->getSiteTreeObject();
                 }
                 $spl = Single::createPageInTree($p['path'], $siteTree, $root, $pkg);
             }
             if (is_object($spl)) {
                 if ($p['name']) {
                     $spl->update(array('cName' => $p['name'], 'cDescription' => $p['description']));
                 }
                 if ($p['custom-path']) {
                     $spl->setCanonicalPagePath((string) $p['custom-path'], false);
                 }
             }
         }
     }
 }
Example #21
0
	public function action_post() {
		// happens through ajax
		$pagetype = PageType::getByID($this->ptID);
		if (is_object($pagetype) && $this->enableNewTopics) {
			$ccp = new Permissions($pagetype);
			if ($ccp->canAddPageType()) {
				$pagetypes = $pagetype->getPageTypeComposerPageTypeObjects();
				$ctTopic = $pagetypes[0];
				$c = Page::getCurrentPage();
				$e = $pagetype->validatePublishRequest($ctTopic, $c);
				$r = new PageTypePublishResponse($e);
				if (!$e->has()) {
					$d = $pagetype->createDraft($ctTopic);
					$d->setPageDraftTargetParentPageID($c->getCollectionID());
					$d->saveForm();
					$d->publish();
					$nc = Page::getByID($d->getCollectionID(), 'RECENT');
					$link = Loader::helper('navigation')->getLinkToCollection($nc, true);
					$r->setRedirectURL($link);
				}
				$r->outputJSON();
			}
		}
		exit;
	}
Example #22
0
 public function getSiteHomePageObject($version = 'RECENT')
 {
     $home = \Page::getByID($this->siteHomePageID, $version);
     if (is_object($home) && !$home->isError()) {
         return $home;
     }
 }
Example #23
0
 protected static function createPage($name, $parent = false, $type = false, $template = false)
 {
     if ($parent === false) {
         $parent = Page::getByID(HOME_CID);
     } else {
         if (is_string($parent)) {
             $parent = Page::getByPath($parent);
         }
     }
     if ($type === false) {
         $type = 1;
     }
     if (is_string($type)) {
         $pt = PageType::getByHandle($type);
     } else {
         $pt = PageType::getByID($type);
     }
     if ($template === false) {
         $template = 1;
     }
     if (is_string($template)) {
         $template = PageTemplate::getByHandle($template);
     } else {
         $template = PageTemplate::getByID($template);
     }
     $page = $parent->add($pt, array('cName' => $name, 'pTemplateID' => $template->getPageTemplateID()));
     return $page;
 }
 public function page3()
 {
     //create the model object
     $cal = new Page();
     //send the webclass
     $webClass = __CLASS__;
     $_SESSION['pageConID'] = "";
     //by pass the form
     $cmd = isset($_GET['cmd']) ? addslashes($_GET['cmd']) : 'read';
     if ($cmd == "edit") {
         //Crud::createForm($obj,$webClass);
         //die('edit');
         $id = isset($_GET['id']) ? addslashes($_GET['id']) : 0;
         if ($id) {
             $cal->getByID($id);
         }
         $mps['id'] = $id;
         $mps['obj'] = $cal;
         Mold::plugin("Page", "pageForm", $mps);
         exit;
     }
     //run the crud utility
     Crud::run($cal, $webClass);
     //pr($mps);
 }
 public function approve(WorkflowProgress $wp)
 {
     $c = Page::getByID($this->getRequestedPageID());
     $c->setOverrideTemplatePermissions($this->inheritance);
     $wpr = new WorkflowProgressResponse();
     $wpr->setWorkflowProgressResponseURL(BASE_URL . DIR_REL . '/' . DISPATCHER_FILENAME . '?cID=' . $c->getCollectionID());
     return $wpr;
 }
Example #26
0
	public function approve(WorkflowProgress $wp) {
		$c = Page::getByID($this->getRequestedPageID());
		$v = CollectionVersion::get($c, $this->cvID);
		$v->approve(false);
		$wpr = new WorkflowProgressResponse();
		$wpr->setWorkflowProgressResponseURL(BASE_URL . DIR_REL . '/' . DISPATCHER_FILENAME . '?cID=' . $c->getCollectionID());
		return $wpr;
	}
 public function processQueueItem(Zend_Queue_Message $msg)
 {
     $c = Page::getByID($msg->body, 'ACTIVE');
     $cv = $c->getVersionObject();
     if (is_object($cv)) {
         $c->reindex($this->is, true);
     }
 }
Example #28
0
	/** 
	 * Reindexes the search engine.
	 */
	public function reindex() {

		Loader::library('3rdparty/Zend/Search/Lucene');
		Loader::library('3rdparty/StandardAnalyzer/Analyzer/Standard/English');

		$index = new Zend_Search_Lucene(DIR_FILES_CACHE_PAGES, true);
		//Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive());
		Zend_Search_Lucene_Analysis_Analyzer::setDefault(new StandardAnalyzer_Analyzer_Standard_English());
		
		$db = Loader::db();
		$collection_attributes = Loader::model('collection_attributes');
		$r = $db->query("select cID from Pages order by cID asc");
		$g = Group::getByID(GUEST_GROUP_ID);
		$nh = Loader::helper('navigation');
		
		while ($row = $r->fetchRow()) {
			$c = Page::getByID($row['cID'], 'ACTIVE');
			
			if($c->getCollectionAttributeValue('exclude_search_index')) continue;		
			
			$themeObject = $c->getCollectionThemeObject();
			$g->setPermissionsForObject($c);
			if ($g->canRead()) {			
				$pageID = md5($row['cID']);
				$doc = new Zend_Search_Lucene_Document();
				$doc->addField(Zend_Search_Lucene_Field::Keyword('cIDhash', $pageID));
				$doc->addField(Zend_Search_Lucene_Field::Unindexed('cID', $row['cID']));
				$doc->addField(Zend_Search_Lucene_Field::Text('cName', $c->getCollectionName(), APP_CHARSET));
				$doc->addField(Zend_Search_Lucene_Field::Keyword('ctHandle', $c->getCollectionTypeHandle()));
				$doc->addField(Zend_Search_Lucene_Field::Text('cDescription', $c->getCollectionDescription(), APP_CHARSET));
				$doc->addField(Zend_Search_Lucene_Field::Text('cBody', $this->getBodyContentFromPage($c), APP_CHARSET));
				
				if (is_object($themeObject)) {
					$doc->addField(Zend_Search_Lucene_Field::Text('cTheme', $themeObject->getThemeHandle()));
				}
				$doc->addField(Zend_Search_Lucene_Field::Text( 'cPath', $c->getCollectionPath())); 
				
				if (count($this->cPathSections) > 0) {
					foreach($this->cPathSections as $var => $cPath) {
						$isInSection = (strstr(strtolower($c->getCollectionPath()), $cPath . '/')) ? 'true' : 'false';
						$doc->addField(Zend_Search_Lucene_Field::Keyword($var, $isInSection));
					}
				}
				
				$attributes=$c->getSetCollectionAttributes();
				foreach($attributes as $attribute){
					if ($attribute->isCollectionAttributeKeySearchable()) {
						$doc->addField(Zend_Search_Lucene_Field::Keyword( $attribute->akHandle, $c->getCollectionAttributeValue($attribute) ));
					}
				}
				
				$index->addDocument($doc);
			}			
		}
		$result = new stdClass;
		$result->count = $index->count();
		return $result;
	}
Example #29
0
 public function createPage()
 {
     Loader::model('page');
     $parent = Page::getByID($this->location);
     $ct = CollectionType::getByID($this->ctID);
     $data = array('cName' => $this->post->title, 'cHandle' => $this->post->page_title, 'cDescription' => $this->post->description, 'cDatePublic' => $this->post->pubDate);
     $p = $parent->add($ct, $data);
     return $p;
 }
Example #30
0
 public function save($args)
 {
     $ak = $this->loadAttribute();
     $c = Page::getByID($_REQUEST['cID'], 'RECENT');
     $nvc = $c->getVersionToModify();
     $ak->saveAttributeForm($nvc);
     $nvc->refreshCache();
     parent::save($args);
 }