function getDataset(&$counter, $params = array()) { $counter = 0; $toolkit =& Limb::toolkit(); $request =& $toolkit->getRequest(); if (!($version = $request->get('version'))) { return new EmptyDataset(); } if (!($node_id = $request->get('version_node_id'))) { return new EmptyDataset(); } $version = (int) $version; $node_id = (int) $node_id; $datasource =& $toolkit->getDatasource('SingleObjectDatasource'); $datasource->setNodeId($node_id); if (!($site_object = wrapWithSiteObject($datasource->fetch()))) { return new EmptyDataset(); } if (!is_subclass_of($site_object, 'ContentObject')) { return new EmptyDataset(); } if (($version_data = $site_object->fetchVersion($version)) === false) { return new EmptyDataset(); } $result = array(); foreach ($version_data as $attrib => $value) { $data['attribute'] = $attrib; $data['value'] = $value; $result[] = $data; } return new ArrayDataset($result); }
function perform(&$request, &$response) { if ($request->hasAttribute('popup')) { $response->write(closePopupNoParentReloadResponse()); } $request->setStatus(Request::STATUS_FAILURE); if (!($version = $request->get('version'))) { return; } if (!($node_id = $request->get('version_node_id'))) { return; } $toolkit =& Limb::toolkit(); $datasource =& $toolkit->getDatasource('SingleObjectDatasource'); $datasource->setNodeId($node_id); if (!($site_object = wrapWithSiteObject($datasource->fetch()))) { return; } if (!is_subclass_of($site_object, 'ContentObject')) { return; } if (!$site_object->recoverVersion((int) $version)) { return; } if ($request->hasAttribute('popup')) { $response->write(closePopupResponse($request)); } $request->setStatus(Request::STATUS_SUCCESS); }
protected function _validPerform($request, $response) { if ($request->hasAttribute('popup')) { $response->write(closePopupResponse($request)); } $data = $this->dataspace->export(); if (!isset($data['ids']) || !is_array($data['ids'])) { $request->setStatus(Request::STATUS_FAILURE); return; } $objects = $this->_getObjects(array_keys($data['ids'])); foreach ($objects as $id => $item) { if (!isset($item['actions']['publish']) || !isset($item['actions']['unpublish'])) { continue; } $object = wrapWithSiteObject($item); $status = $object->get('status'); if ($status & SITE_OBJECT_PUBLISHED_STATUS) { $status &= ~SITE_OBJECT_PUBLISHED_STATUS; $action = 'unpublish'; } else { $status |= SITE_OBJECT_PUBLISHED_STATUS; $action = 'publish'; } $object->set('status', $status); $object->update(false); $this->_applyAccessPolicy($object, $action); } $request->setStatus(Request::STATUS_SUCCESS); }
function perform(&$request, &$response) { $request->setStatus(Request::STATUS_SUCCESS); if ($request->hasAttribute('popup')) { $response->write(closePopupResponse($request)); } $toolkit =& Limb::toolkit(); $datasource =& $toolkit->getDatasource('RequestedObjectDatasource'); $datasource->setRequest($request); if (!($object = wrapWithSiteObject($datasource->fetch()))) { return; } $site_object_controller =& $object->getController(); $action = $site_object_controller->getAction($request); switch ($action) { case 'publish': $status = $this->getPublishStatus($object); break; case 'unpublish': $status = $this->getUnpublishStatus($object); break; default: return; break; } $object->set('status', $status); $object->update(false); $this->_applyAccessPolicy($object, $action); $datasource->flushCache(); }
protected function _getObjectToDelete() { $toolkit = Limb :: toolkit(); $datasource = $toolkit->getDatasource('RequestedObjectDatasource'); $datasource->setRequest($toolkit->getRequest()); return wrapWithSiteObject($datasource->fetch()); }
protected function _getTemplatePathFromNode($node_id) { $datasource = Limb::toolkit()->getDatasource('RequestedObjectDatasource'); $datasource->setNodeId($node_id); if (!($site_object = wrapWithSiteObject($datasource->fetch()))) { return null; } $controller = $site_object->getController(); return $controller->getActionProperty($controller->getDefaultAction(), 'template_path'); }
public function run($filter_chain, $request, $response) { $filter_chain->next(); Debug::addTimingPoint('logging filter started'); $datasource = Limb::toolkit()->getDatasource('RequestedObjectDatasource'); $datasource->setRequest($request); $object = wrapWithSiteObject($datasource->fetch()); $controller = $object->getController(); include_once dirname(__FILE__) . '/../StatsRegister.class.php'; $stats_register = new StatsRegister(); $stats_register->register($object->getNodeId(), $controller->getAction($request), $request->getStatus()); Debug::addTimingPoint('logging filter finished'); }
public function run($filter_chain, $request, $response) { Debug :: addTimingPoint('site object controller filter started'); $datasource = Limb :: toolkit()->getDatasource('RequestedObjectDatasource'); $datasource->setRequest($request); $site_object = wrapWithSiteObject($datasource->fetch()); $site_object->getController()->process($request); Debug :: addTimingPoint('site object controller filter finished'); $filter_chain->next(); }
public function perform() { $toolkit = Limb::toolkit(); $request = $toolkit->getRequest(); $datasource = $toolkit->getDatasource('RequestedObjectDatasource'); $datasource->setRequest($request); $object = wrapWithSiteObject($datasource->fetch()); $action = $object->getController()->getRequestedAction($request); try { $access_policy = $this->_getAccessPolicy(); $access_policy->applyAccessTemplates($object, $action); } catch (LimbException $e) { return Limb::STATUS_ERROR; } return Limb::STATUS_OK; }
public function getCurrentTemplateSourceLink() { $request = Limb::toolkit()->getRequest(); $datasource = Limb::toolkit()->getDatasource('RequestedObjectDatasource'); $datasource->setRequest($request); if (!($site_object = wrapWithSiteObject($datasource->fetch()))) { return ''; } $site_object_controller = $site_object->getController(); if (($action = $site_object_controller->getAction($request)) === false) { return ''; } if (!($template_path = $site_object_controller->getActionProperty($action, 'template_path'))) { return ''; } return '/root/template_source?t[]=' . $template_path; }
public function perform() { $toolkit = Limb::toolkit(); $dataspace = $toolkit->getDataspace(); if (!($object = $dataspace->get('created_site_object'))) { throw new LimbException('can\'t find created site object in dataspace'); } $parent_id = $object->getParentNodeId(); $datasource = $toolkit->getDatasource('SingleObjectDatasource'); $datasource->setNodeId($parent_id); $parent_object = wrapWithSiteObject($datasource->fetch()); $action = $parent_object->getController()->getRequestedAction($toolkit->getRequest()); try { $access_policy = $this->_getAccessPolicy(); $access_policy->saveNewObjectAccess($object, $parent_object, $action); } catch (LimbException $e) { return Limb::STATUS_ERROR; } return Limb::STATUS_OK; }
protected function _getObjectsToDelete($node_ids) { $datasource = Limb::toolkit()->getDatasource('SiteObjectsByNodeIdsDatasource'); $datasource->setNodeIds($node_ids); $objects = $datasource->fetch(); $tree = Limb::toolkit()->getTree(); foreach ($objects as $id => $item) { if (!isset($item['actions']['delete'])) { $objects[$id]['delete_status'] = 1; $objects[$id]['delete_reason'] = Strings::get('delete_action_not_accessible', 'error'); continue; } $site_object = wrapWithSiteObject($item); if (!$site_object->canDelete()) { $objects[$id]['delete_status'] = 1; $objects[$id]['delete_reason'] = Strings::get('cant_be_deleted', 'error'); continue; } $objects[$id]['delete_reason'] = Strings::get('ok'); $objects[$id]['delete_status'] = 0; $objects[$id]['ids'][$item['node_id']] = 1; } return $objects; }
function testWrapWithSiteObjectMultiple() { $fetched_data = array($data1 = array('class_name' => $class_name1 = 'test_site_object1'), $data2 = array('class_name' => $class_name2 = 'test_site_object2')); $this->toolkit->setReturnValue('createSiteObject', $this->site_object, array($class_name1)); $this->toolkit->setReturnValue('createSiteObject', $this->site_object, array($class_name2)); $this->toolkit->expectCallCount('createSiteObject', 2); $this->site_object->expectArgumentsAt(0, 'merge', array($data1)); $this->site_object->expectArgumentsAt(1, 'merge', array($data2)); $this->assertTrue(wrapWithSiteObject($fetched_data) === array($this->site_object, $this->site_object)); }
protected function _getMappedController() { $request = Limb::toolkit()->getRequest(); return wrapWithSiteObject(Limb::toolkit()->getFetcher()->fetchRequestedObject($request))->getController(); }