/** * @param RendererRegistry $renderers * @return \rtens\domin\delivery\web\Element[] */ public function headElements(RendererRegistry $renderers) { $renderer = $renderers->getRenderer($this->content); if ($renderer instanceof WebRenderer) { return $renderer->headElements($this->content); } return []; }
/** * @param mixed $value * @return mixed */ public function render($value) { $delimiter = PHP_EOL; $lines = []; foreach ($value as $key => $item) { $lines[] = $key . ': ' . $this->renderers->getRenderer($item)->render($item); } return PHP_EOL . implode($delimiter, $lines) . PHP_EOL; }
/** * @param mixed $value * @return array|Element[] */ public function headElements($value) { $content = $this->getContent($value); $renderer = $this->renderers->getRenderer($content); if ($renderer instanceof WebRenderer) { return $renderer->headElements($content); } return []; }
/** * @param RendererRegistry $renderers * @return \rtens\domin\delivery\web\Element[] */ public function headElements(RendererRegistry $renderers) { $elements = [HeadElements::jquery()]; $renderer = $renderers->getRenderer($this->content); if ($renderer instanceof WebRenderer) { $elements = array_merge($elements, $renderer->headElements($this->content)); } return $elements; }
/** * @param mixed $value * @return mixed */ public function render($value) { $delimiter = PHP_EOL . PHP_EOL; $isList = array_keys($value) == range(0, count($value) - 1); $lines = []; foreach ($value as $key => $item) { $lines[] = ($isList ? '' : $key . ': ') . $this->renderers->getRenderer($item)->render($item); } return PHP_EOL . implode($delimiter, $lines) . PHP_EOL; }
/** * @param array $array * @return array|Element[] */ public function headElements($array) { $elements = []; foreach ($array as $item) { $renderer = $this->renderers->getRenderer($item); if ($renderer instanceof WebRenderer) { $elements = array_merge($elements, $renderer->headElements($item)); } } return $elements; }
function collectsHeadElementsOfItems() { $itemRenderer = Mockster::of(WebRenderer::class); $this->registry->add(Mockster::mock($itemRenderer)); Mockster::stub($itemRenderer->handles(Argument::any()))->will()->return_(true); Mockster::stub($itemRenderer->headElements('foo'))->will()->return_([new Element('foo')]); Mockster::stub($itemRenderer->headElements(Argument::object(\DateTime::class)))->will()->return_([new Element('bar')]); $elements = $this->renderer->headElements(['foo', new \DateTime()]); $this->assert->size($elements, 2); $this->assert((string) $elements[0], '<foo></foo>'); $this->assert((string) $elements[1], '<bar></bar>'); }
function configureTableRendering() { $this->renderers->add(new ElementRenderer()); $this->renderers->add(new PrimitiveRenderer()); $data = [json_decode('{"one":"uno","two":"dos","three":"tres"}'), json_decode('{"one":"un","two":"deux","three":"trois"}')]; $table = (new ObjectTable($data, $this->types))->selectProperties(['three', 'one'])->setHeader('one', '1')->setFilter('three', function ($s) { return strtoupper($s); }); $this->assert->contains($this->tableRenderer->render($table), "<th>Three</th>\n<th>1</th>"); $this->assert->contains($this->tableRenderer->render($table), "<td>TRES</td>\n<td>uno</td>"); $this->assert->contains($this->tableRenderer->render($table), "<td>TROIS</td>\n<td>un</td>"); }
/** * @param Table $value * @return array|Element[] */ public function headElements($value) { $elements = []; foreach ($value->getItems() as $item) { foreach ($value->getCells($item) as $cell) { $renderer = $this->renderers->getRenderer($cell); if ($renderer instanceof WebRenderer) { $elements = array_merge($elements, $renderer->headElements($cell)); } } } return $elements; }
/** * @param DataTable $value * @return array|Element[] */ public function headElements($value) { $elements = []; $table = $value->getTable(); $renderer = $this->renderers->getRenderer($table); if ($renderer instanceof WebRenderer) { $elements = $renderer->headElements($table); } $options = json_encode($value->getOptions()); $elements[] = HeadElements::style('//cdn.datatables.net/1.10.7/css/jquery.dataTables.min.css'); $elements[] = HeadElements::script('//cdn.datatables.net/1.10.7/js/jquery.dataTables.min.js'); $elements[] = new Element('script', [], ["\n \$(function () {\n \$('.data-table > table').dataTable({$options});\n });\n "]); return $elements; }
private function registerRenderers() { $links = new LinkPrinter($this->links, $this->actions, $this->parser, $this->token); $this->renderers->add(new ElementRenderer()); $this->renderers->add(new BooleanRenderer()); $this->renderers->add(new ColorRenderer()); $this->renderers->add(new PrimitiveRenderer()); $this->renderers->add(new DateTimeRenderer()); $this->renderers->add(new DateIntervalRenderer()); $this->renderers->add(new TextRenderer()); $this->renderers->add(new HtmlRenderer()); $this->renderers->add(new IdentifierRenderer($links)); $this->renderers->add(new FileRenderer()); $this->renderers->add(new ImageRenderer()); $this->renderers->add(new ScatterChartRenderer()); $this->renderers->add(new ChartRenderer()); $this->renderers->add(new DelayedOutputRenderer()); $this->renderers->add(new DashboardItemRenderer($this->renderers)); $this->renderers->add(new ActionListRenderer($this->parser)); $this->renderers->add(new ActionPanelRenderer($this->renderers, $this->actions, $this->fields)); $this->renderers->add(new DataTableRenderer($this->renderers)); $this->renderers->add(new TableRenderer($this->renderers, $links)); $this->renderers->add(new ListRenderer($this->renderers, $links)); $this->renderers->add(new MapRenderer($this->renderers, $links)); $this->renderers->add(new ObjectRenderer($this->renderers, $this->types, $links)); }
/** * @param mixed $value * @return mixed */ public function render($value) { if (method_exists($value, '__toString')) { return (string) $value; } $output = ['### ' . (new \ReflectionClass($value))->getShortName() . ' ###']; $reader = new PropertyReader($this->types, $value); foreach ($reader->readInterface($value) as $property) { if (!$property->canGet()) { continue; } $propertyValue = $property->get($value); $rendered = $this->renderers->getRenderer($propertyValue)->render($propertyValue); $output[] = ucfirst($property->name()) . ': ' . rtrim(str_replace(PHP_EOL, PHP_EOL . ' ', $rendered)); } return implode(PHP_EOL, $output) . PHP_EOL; }
function nestedTables() { $this->renderers->add(new PrimitiveRenderer()); $this->renderers->add($this->tableRenderer); $tableInTable = new ArrayTable([['table' => new ArrayTable([['one' => 'uno', 'two' => 'dos']])]]); $this->tableRenderer->render($tableInTable); $this->tableRenderer->headElements($tableInTable); $this->assert->pass(); }
protected function handleValueResult(ValueResult $result) { $value = $result->getValue(); $renderer = $this->renderers->getRenderer($value); if ($renderer instanceof WebRenderer) { $this->headElements = $renderer->headElements($value); } $this->model['output'] = $renderer->render($value); if (!$this->action->isModifying()) { $this->crumbs->updateCrumbs($this->action, $this->actionId); } }
function collectHeadElementsOfProperties() { $propertyRenderer = Mockster::of(WebRenderer::class); $this->renderers->add(Mockster::mock($propertyRenderer)); Mockster::stub($propertyRenderer->handles(Argument::any()))->will()->return_(true); Mockster::stub($propertyRenderer->headElements('uno'))->will()->return_([new Element('one')]); Mockster::stub($propertyRenderer->headElements('bar'))->will()->return_([new Element('foo')]); $elements = $this->renderer->headElements(json_decode('{"one":"uno", "foo":"bar"}')); $this->assert->size($elements, 2); $this->assert((string) $elements[0], '<one></one>'); $this->assert((string) $elements[1], '<foo></foo>'); }
private function registerRenderers() { $this->renderers->add(new BooleanRenderer()); $this->renderers->add(new PrimitiveRenderer()); $this->renderers->add(new DateTimeRenderer()); $this->renderers->add(new DateIntervalRenderer()); $this->renderers->add(new HtmlRenderer()); $this->renderers->add(new IdentifierRenderer()); $this->renderers->add(new FileRenderer('')); $this->renderers->add(new DelayedOutputRenderer()); $this->renderers->add(new ObjectTableRenderer($this->renderers)); $this->renderers->add(new DataTableRenderer($this->renderers)); $this->renderers->add(new TableRenderer($this->renderers)); $this->renderers->add(new ChartRenderer($this->renderers)); $this->renderers->add(new ArrayRenderer($this->renderers)); $this->renderers->add(new ObjectRenderer($this->renderers, $this->types)); }
private function givenARendererFor_RenderingWith($value, $callback) { $renderer = Mockster::of(Renderer::class); $this->renderers->add(Mockster::mock($renderer)); Mockster::stub($renderer->handles($value))->will()->return_(true); Mockster::stub($renderer->render(Argument::any()))->will()->forwardTo($callback); }
private function whenIExecute($id) { $fields = new FieldRegistry(); foreach ($this->fields as $field) { $fields->add(Mockster::mock($field)); } $renderers = new RendererRegistry(); foreach ($this->renderers as $renderer) { $renderers->add(Mockster::mock($renderer)); } $executor = new Executor($this->action->registry, $fields, $renderers, Mockster::mock($this->reader)); $this->result = $executor->execute($id); }
private function givenAllValuesAreRenderedWith($callback) { $renderer = Mockster::of(Renderer::class); $this->renderers->add(Mockster::mock($renderer)); Mockster::stub($renderer->handles(Arg::any()))->will()->return_(true); Mockster::stub($renderer->render(Arg::any()))->will()->forwardTo($callback); }
/** * @param DataTable $value * @return mixed */ public function render($value) { $table = $value->getTable(); return $this->renderers->getRenderer($table)->render($table); }
protected function render($value) { return $this->renderers->getRenderer($value)->render($value); }