verbb / vizy

A flexible visual editor for Craft CMS
Other
43 stars 8 forks source link

Rendering tables doesn't work - Array to string conversion error #247

Closed jan-dh closed 10 months ago

jan-dh commented 10 months ago

Describe the bug

I've added a table to Vizy with the following setup:

 "table": [
    "insert-table",
    "delete-table",
    "add-row-before",
    "add-row-after",
    "delete-row",
    "add-col-before",
    "add-col-after",
    "delete-col",
    "toggle-header-row"
  ],

I render the table doing:

{%- for node in content -%}
  {%- if node.type == 'heading' -%}
    ...
  {%- elseif node.type == 'table' -%}
    <div class="max-w-100 overflow-scroll">{{ node.renderHtml()}}</div>
  {%- else -%}
    {{ node.renderHtml()}}
  {%- endif -%}
{%- endfor -%}

so using the default node.renderHtml

Rendering a table gives me:

yii\base\ErrorException: Array to string conversion in /var/www/html/vendor/yiisoft/yii2/helpers/BaseHtml.php:178
Stack trace:
#0 /var/www/html/vendor/craftcms/cms/src/web/ErrorHandler.php(79): yii\base\ErrorHandler->handleError(2, 'Array to string...', '/var/www/html/v...', 178)
#1 /var/www/html/vendor/yiisoft/yii2/helpers/BaseHtml.php(178): craft\web\ErrorHandler->handleError(2, 'Array to string...', '/var/www/html/v...', 178)
#2 /var/www/html/vendor/verbb/vizy/src/helpers/Nodes.php(153): yii\helpers\BaseHtml::beginTag(Array, Array)
#3 [internal function]: verbb\vizy\helpers\Nodes::verbb\vizy\helpers\{closure}(Array)
#4 /var/www/html/vendor/verbb/vizy/src/helpers/Nodes.php(149): array_map(Object(Closure), Array)
#5 /var/www/html/vendor/verbb/vizy/src/base/Node.php(173): verbb\vizy\helpers\Nodes::renderOpeningTag(Array)
#6 /var/www/html/vendor/verbb/vizy/src/helpers/Nodes.php(37): verbb\vizy\base\Node->renderOpeningTag()
#7 /var/www/html/vendor/verbb/vizy/src/services/Nodes.php(117): verbb\vizy\helpers\Nodes::renderNode(Object(verbb\vizy\nodes\Table))
#8 /var/www/html/vendor/verbb/vizy/src/base/Node.php(143): verbb\vizy\services\Nodes->renderNode(Object(verbb\vizy\nodes\Table))
#9 /var/www/html/vendor/verbb/vizy/src/base/Node.php(148): verbb\vizy\base\Node->renderNode(Array)
#10 /var/www/html/vendor/twig/twig/src/Extension/CoreExtension.php(1607): verbb\vizy\base\Node->renderHtml()
#11 /var/www/html/vendor/craftcms/cms/src/helpers/Template.php(129): twig_get_attribute(Object(craft\web\twig\Environment), Object(Twig\Source), Object(verbb\vizy\nodes\Table), 'renderHtml', Array, 'method', false, false)
#12 /var/www/html/storage/runtime/compiled_templates/dc/dc9660455ae06d0a472286e0d5408545.php(101): craft\helpers\Template::attribute(Object(craft\web\twig\Environment), Object(Twig\Source), Object(verbb\vizy\nodes\Table), 'renderHtml', Array, 'method')
#13 /var/www/html/vendor/twig/twig/src/Template.php(171): __TwigTemplate_13c46e7cf8ac1a74fbd06d66766c1b01->block_content(Array, Array)
#14 /var/www/html/storage/runtime/compiled_templates/a0/a022511bf51a46a88d78267b4fcd7700.php(58): Twig\Template->displayBlock('content', Array, Array)
#15 /var/www/html/vendor/twig/twig/src/Template.php(171): __TwigTemplate_54b0667688e76b65692346226443d31a->block_body(Array, Array)
#16 /var/www/html/storage/runtime/compiled_templates/f9/f90073c4f906347114aaa7fc9b3a3c3e.php(123): Twig\Template->displayBlock('body', Array, Array)
#17 /var/www/html/vendor/twig/twig/src/Template.php(171): __TwigTemplate_598709443df272c9a2894610f9a62cf0->block_base(Array, Array)
#18 /var/www/html/storage/runtime/compiled_templates/49/49dcb289082c3d716dbce3a0f3681ec0.php(76): Twig\Template->displayBlock('base', Array, Array)
#19 /var/www/html/vendor/twig/twig/src/Template.php(394): __TwigTemplate_e6f01ed72a26f8f6c949712a9d28c986->doDisplay(Array, Array)
#20 /var/www/html/vendor/twig/twig/src/Template.php(367): Twig\Template->displayWithErrorHandling(Array, Array)
#21 /var/www/html/storage/runtime/compiled_templates/f9/f90073c4f906347114aaa7fc9b3a3c3e.php(45): Twig\Template->display(Array, Array)
#22 /var/www/html/vendor/twig/twig/src/Template.php(394): __TwigTemplate_598709443df272c9a2894610f9a62cf0->doDisplay(Array, Array)
#23 /var/www/html/vendor/twig/twig/src/Template.php(367): Twig\Template->displayWithErrorHandling(Array, Array)
#24 /var/www/html/storage/runtime/compiled_templates/a0/a022511bf51a46a88d78267b4fcd7700.php(44): Twig\Template->display(Array, Array)
#25 /var/www/html/vendor/twig/twig/src/Template.php(394): __TwigTemplate_54b0667688e76b65692346226443d31a->doDisplay(Array, Array)
#26 /var/www/html/vendor/twig/twig/src/Template.php(367): Twig\Template->displayWithErrorHandling(Array, Array)
#27 /var/www/html/storage/runtime/compiled_templates/dc/dc9660455ae06d0a472286e0d5408545.php(46): Twig\Template->display(Array, Array)
#28 /var/www/html/vendor/twig/twig/src/Template.php(394): __TwigTemplate_13c46e7cf8ac1a74fbd06d66766c1b01->doDisplay(Array, Array)
#29 /var/www/html/vendor/twig/twig/src/Template.php(367): Twig\Template->displayWithErrorHandling(Array, Array)
#30 /var/www/html/vendor/twig/twig/src/Template.php(379): Twig\Template->display(Array)
#31 /var/www/html/vendor/twig/twig/src/TemplateWrapper.php(40): Twig\Template->render(Array, Array)
#32 /var/www/html/vendor/twig/twig/src/Environment.php(277): Twig\TemplateWrapper->render(Array)
#33 /var/www/html/vendor/craftcms/cms/src/web/View.php(474): Twig\Environment->render('_entries/blog.t...', Array)
#34 /var/www/html/vendor/craftcms/cms/src/web/View.php(527): craft\web\View->renderTemplate('_entries/blog.t...', Array)
#35 /var/www/html/vendor/craftcms/cms/src/web/TemplateResponseFormatter.php(56): craft\web\View->renderPageTemplate('_entries/blog.t...', Array, 'site')
#36 /var/www/html/vendor/yiisoft/yii2/web/Response.php(1100): craft\web\TemplateResponseFormatter->format(Object(craft\web\Response))
#37 /var/www/html/vendor/craftcms/cms/src/web/Response.php(346): yii\web\Response->prepare()
#38 /var/www/html/vendor/yiisoft/yii2/web/Response.php(340): craft\web\Response->prepare()
#39 /var/www/html/vendor/yiisoft/yii2/base/Application.php(390): yii\web\Response->send()
#40 /var/www/html/web/index.php(17): yii\base\Application->run()
#41 {main}

This issue was introduced in dev-craft-4 as 2.1.8 I think, since I was able to render them before upgrading to this.

Steps to reproduce

  1. Create a vizy field with the table setup described above
  2. Use version dev-craft-4 as 2.1.8
  3. Try rendering it with {{ node.renderHtml()}

Craft CMS version

4.5.1

Plugin version

dev-craft-4 as 2.1.8

Multi-site?

yes

Additional context

No response

engram-design commented 10 months ago

Fixed for the next release. To get this early, run composer require verbb/vizy:"dev-craft-4 as 2.1.8"

engram-design commented 10 months ago

Fixed in 2.1.9