public function readIntoWidgetRouteParameters(Widget $widget) { $entity = $widget->getEntity(); //Creates a new twig environment $twig = new \Twig_Environment(new \Twig_Loader_String()); //add global values for `entity` and `businessEntityId` $twig->addGlobal('entity', $entity); $twig->addGlobal($widget->getBusinessEntityId(), $entity); //Interpret variables in widget route parameters to be able to generate correct $params = array(); foreach ($widget->getLink()->getRouteParameters() as $key => $_routeParameter) { $params[$key] = $twig->render($_routeParameter); } $widget->getLink()->setRouteParameters($params); }
protected function populateParametersWithWidgetFields(Widget $widget, $entity, &$parameters) { $fields = $widget->getFields(); //parse the field foreach ($fields as $widgetField => $field) { //get the value of the field if ($entity !== null) { $attributeValue = $entity->getEntityAttributeValue($field); } else { $attributeValue = $widget->getBusinessEntityId() . ' -> ' . $field; } $parameters[$widgetField] = $attributeValue; } }