/** * Do create the REST routes * @return array The route objects */ protected function doCreateRoutes() { $providerRoutes = ezpRestProvider::getProvider( ezpRestPrefixFilterInterface::getApiProviderName() )->getRoutes(); $providerRoutes['fatal'] = new ezpMvcRailsRoute( '/fatal', 'ezpRestErrorController', 'show' ); return ezcMvcRouter::prefix( eZINI::instance( 'rest.ini' )->variable( 'System', 'ApiPrefix' ), $providerRoutes ); }
/** * Do create the REST routes * @return array The route objects */ protected function doCreateRoutes() { $providerRoutes = ezpRestProvider::getProvider( ezpRestPrefixFilterInterface::getApiProviderName() )->getRoutes(); $routes = array( 'fatal' => new ezpMvcRailsRoute( '/fatal', 'ezpRestErrorController', 'show' ), ); $prefix = eZINI::instance( 'rest.ini' )->variable( 'System', 'ApiPrefix' ); $prefixedRoutes = ezcMvcRouter::prefix( $prefix, array_merge( $providerRoutes, $routes ) ); return $prefixedRoutes; }
public function createRoutes() { $routes[] = new ezcMvcRegexpRouteStruct('@^/styles/(?P<slug>.+)/$@', 'yourStyleController', array('defaultValue1' => 42)); // Add routes from an application $appRouterOne = new myApplicationDecoupledRouterOne(); $routes += $appRouterOne->createRoutes(); // Add routes from an application, prefixed with the blog/ prefix. $appRouter = new myApplicationDecoupledRouterDefault(); $routes += ezcMvcRouter::prefix('blog/', $appRouter->createRoutes()); return $routes; }
public static function attributeOutputData(ezpContentField $field, ezpRestRequest $currentRequest = null, ezcMvcRouter $router = null) { $attributeValue = $stringValue = array(); switch ($field->data_type_string) { case 'ezxmltext': $html = $field->content->attribute('output')->attribute('output_text'); $attributeValue = array($html); $stringValue = array(strip_tags($html)); break; case 'ezimage': if ($field->hasContent()) { $strRepImage = $field->toString(); $delimPos = strpos($strRepImage, '|'); if ($delimPos !== false) { $strRepImage = substr($strRepImage, 0, $delimPos); } $attributeValue = array(self::getHostURIFromRequest($currentRequest) . '/' . $strRepImage); $stringValue = array($field->toString()); } break; case 'ezbinaryfile': if ($field->hasContent()) { $file = $field->content(); $filePath = "content/download/{$field->attribute('contentobject_id')}/{$field->attribute('id')}/{$field->content()->attribute('original_filename')}"; $attributeValue = array(self::getHostURIFromRequest($currentRequest) . '/' . $filePath); $stringValue = array($field->toString()); } else { $attributeValue = array(null); $stringValue = array(null); } break; case 'ezobjectrelationlist': $attributeValue = array(); $stringValueArray = array(); if ($currentRequest && $router) { if ($field->hasContent()) { $relations = $field->content(); foreach ($relations['relation_list'] as $relation) { $id = $relation['contentobject_id']; $object = eZContentObject::fetch($id); if ($object instanceof eZContentObject && $object->attribute('main_node') instanceof eZContentObjectTreeNode) { if ($object->attribute('can_read')) { $content = ezpContent::fromObject($object); $objectMetadata = OCOpenDataContentModel::getMetadataByContent($content); $contentQueryString = $currentRequest->getContentQueryString(true); try { if ($content->main_node) { $node = $content->main_node; $location = ezpContentLocation::fromNode($node); $objectMetadata = array_merge($objectMetadata, self::getMetadataByLocation($location)); $stringValueArray[] = $id; } else { throw new Exception("Node not found for object id #{$id}"); } } catch (Exception $e) { } $objectMetadata['link'] = self::getHostURIFromRequest($currentRequest) . $router->generateUrl('ezpObject', array('objectId' => $id)) . $contentQueryString; $attributeValue[] = $objectMetadata; } //else //{ // $attributeValue[] = "Access not allowed for content $id"; //} } } } } $stringValue = array(implode('-', $stringValueArray)); break; case 'ezobjectrelation': $attributeValue = array(); $stringValue = array($field->toString()); if ($currentRequest && $router) { if ($field->hasContent()) { $relation = $field->content(); if ($relation->attribute('can_read')) { $id = $relation->attribute('id'); $content = ezpContent::fromObject($relation); $objectMetadata = OCOpenDataContentModel::getMetadataByContent($content); $objectMetadata['link'] = self::getHostURIFromRequest($currentRequest) . $router->generateUrl('ezpObject', array('objectId' => $id)); $attributeValue[] = $objectMetadata; } } } break; default: $datatypeBlacklist = self::getDatatypeBlackList(); if (isset($datatypeBlacklist[$field->data_type_string])) { $attributeValue = array(null); $stringValue = array(null); } elseif ($field->hasContent()) { $attributeValue = array($field->toString()); $stringValue = array($field->toString()); } break; } if (count($attributeValue) == 0) { $attributeValue = false; } elseif (count($attributeValue) == 1) { $attributeValue = current($attributeValue); } if (count($stringValue) == 0) { $stringValue = false; } elseif (count($stringValue) == 1) { $stringValue = current($stringValue); } $return = array('name' => $field->contentclass_attribute_name, 'description' => $field->contentclass_attribute->attribute('description'), 'identifier' => $field->contentclass_attribute_identifier, 'id' => (int) $field->id, 'classattribute_id' => (int) $field->contentclassattribute_id, 'type' => $field->data_type_string, 'value' => $attributeValue, 'string_value' => $stringValue); return $return; }
public function createRoutes() { $providerRoutes = ezpRestProvider::getProvider(ezpRestPrefixFilterInterface::getApiProviderName())->getRoutes(); $routes = array(new ezcMvcRailsRoute('/fatal', 'ezpRestErrorController', 'show'), new ezcMvcRailsRoute('/http-basic-auth', 'ezpRestAuthController', 'basicAuth'), new ezcMvcRailsRoute('/login/oauth', 'ezpRestAuthController', 'oauthRequired'), new ezcMvcRailsRoute('/oauth/token', 'ezpRestOauthTokenController', 'handleRequest'), new ezpRestVersionedRoute(new ezcMvcRailsRoute('/foo', 'myController', 'myActionOne'), 1), new ezpRestVersionedRoute(new ezcMvcRailsRoute('/foo', 'myController', 'myActionOneBetter'), 2)); return ezcMvcRouter::prefix('/api', array_merge($providerRoutes, $routes)); }