wintercms / wn-blocks-plugin

Block based content management plugin for Winter CMS.
MIT License
21 stars 5 forks source link

Blocks with block type fields sharing the same name cause out-of-memory issue #35

Open nmiyazaki-chapleau opened 3 months ago

nmiyazaki-chapleau commented 3 months ago

Adding a block with a block type field within itself and rendering it using renderBlocks() causes out-of-memory issues. More specifically, block variables are shared within each layer of blocks. This can happen at any level of depth within blocks. Example: We have Block 1with a field "content" of type blocksand Block 2 with a field "content" of type blocks.

Inserting block 1 inside block 1 -> OOM issue. Inserting block 2 inside block 1 -> OOM issue.

Renaming Block 1's field "content" to "content_1":

Inserting block 1 inside block 1 -> OOM issue. Inserting block 2 inside block 1 -> OK.

I believe blocks shouldn't be able to access parent blocks' variables, as it would only lead to unintended consequences such as this one, and I do not see intentionally using parent variables in blocks as a good thing.

I believe this is a known issue, as the columns_two default block forcefully ignores itself as a valid block underneath.

LukeTowers commented 2 months ago

@bennothommo thoughts?