Skip to content

Commit

Permalink
EZP-23513: pass converted link parameters to Legacy Stack
Browse files Browse the repository at this point in the history
  • Loading branch information
pspanja committed Nov 27, 2014
1 parent ef91097 commit e8c7dd4
Showing 1 changed file with 89 additions and 1 deletion.
90 changes: 89 additions & 1 deletion eZ/Publish/Core/MVC/Legacy/View/Provider/Content.php
Expand Up @@ -9,6 +9,7 @@

namespace eZ\Publish\Core\MVC\Legacy\View\Provider;

use eZ\Publish\Core\FieldType\XmlText\Converter\EmbedToHtml5;
use eZ\Publish\Core\MVC\Legacy\View\Provider;
use eZ\Publish\Core\MVC\Symfony\View\Provider\Content as ContentViewProviderInterface;
use eZ\Publish\API\Repository\Values\Content\ContentInfo;
Expand Down Expand Up @@ -50,12 +51,34 @@ function () use ( $contentInfo, $viewType, $params )
// Used by XmlText field type
if ( isset( $params['objectParameters'] ) )
{
if ( isset( $params['linkParameters'] ) && $params['linkParameters'] !== null )
{
$linkParameters = $params['linkParameters'];
}
$tpl->setVariable( 'object_parameters', $params["objectParameters"], 'ContentView' );
}
// Used by RichText field type
else if ( isset( $params['embedParams'] ) )
{
$tpl->setVariable( 'object_parameters', $params["embedParams"], 'ContentView' );
if ( isset( $params['embedParams']['link'] ) )
{
$linkParameters = $params['embedParams']['link'];
}

if ( isset( $params['embedParams']['config'] ) )
{
$tpl->setVariable( 'object_parameters', $params['embedParams']['config'], 'ContentView' );
}
}

// Convert link parameters to Legacy Stack format
if ( isset( $linkParameters ) )
{
$tpl->setVariable(
'link_parameters',
$this->legalizeLinkParameters( $linkParameters ),
'ContentView'
);
}

$children = array();
Expand Down Expand Up @@ -100,6 +123,71 @@ function () use ( $contentInfo, $viewType, $params )
return $this->decorator;
}

/**
* Converts link parameters to Legacy Stack format
*
* @param array $linkParameters
*
* @return array
*/
protected function legalizeLinkParameters( array $linkParameters )
{
$parameters = array();

if ( isset( $linkParameters["href"] ) )
{
$parameters["href"] = $linkParameters["href"];
}

if ( isset( $linkParameters["resourceFragmentIdentifier"] ) )
{
$parameters["anchor_name"] = $linkParameters["resourceFragmentIdentifier"];
}

if ( isset( $linkParameters["class"] ) )
{
$parameters["class"] = $linkParameters["class"];
}

if ( isset( $linkParameters["id"] ) )
{
$parameters["xhtml:id"] = $linkParameters["id"];
}

if ( isset( $linkParameters["target"] ) )
{
$parameters["target"] = $linkParameters["target"];
}

if ( isset( $linkParameters["title"] ) )
{
$parameters["xhtml:title"] = $linkParameters["title"];
}

if ( $linkParameters["resourceType"] !== null )
{
switch ( $linkParameters["resourceType"] )
{
case EmbedToHtml5::LINK_RESOURCE_CONTENT:
$parameters["object_id"] = $linkParameters["resourceId"];
break;

case EmbedToHtml5::LINK_RESOURCE_LOCATION:
$parameters["node_id"] = $linkParameters["resourceId"];
break;

case EmbedToHtml5::LINK_RESOURCE_URL:
$parameters["url_id"] = $linkParameters["resourceId"];
break;

default:
// Don't set anything by default
}
}

return $parameters;
}

/**
* Checks if $valueObject matches the $matcher's rules.
*
Expand Down

0 comments on commit e8c7dd4

Please sign in to comment.