23 Commits

Author SHA1 Message Date
Guy Sartorelli
0a5672a434
API Refactor template layer into its own module
Includes the following large-scale changes:
- Impoved barrier between model and view layers
- Improved casting of scalar to relevant DBField types
- Improved capabilities for rendering arbitrary data in templates
2024-10-09 11:24:34 +13:00
Guy Sartorelli
e2e32317d6
API Move various classes to more appropriate namespaces (#11370)
Also rename ViewableData to ModelData ahead of the template layer
lift-and-shift
2024-09-23 14:31:50 +12:00
Guy Sartorelli
051dadde12
Merge branch '5' into 6 2024-08-12 13:20:08 +12:00
Guy Sartorelli
410ef74e32
Merge branch '5.2' into 5 2024-08-12 13:03:34 +12:00
Guy Sartorelli
7b91207c12
FIX Don't error if template global is null (#11331) 2024-08-09 09:27:38 +12:00
github-actions
cbc984eaf7 Merge branch '5' into 6 2024-06-20 03:09:22 +00:00
Guy Sartorelli
dcace43183
Merge branch '5.2' into 5
# Conflicts:
#	src/Core/ClassInfo.php
#	src/ORM/FieldType/DBForeignKey.php
2024-06-20 14:51:48 +12:00
Steve Boyd
620c1b0469 ENH Use class name instead of self 2024-06-18 09:37:39 +12:00
Guy Sartorelli
3f30da5155
ENH Looping through arrays in templates (#11244) 2024-05-24 12:51:14 +12:00
Steve Boyd
12a741feee ENH Rendering scalars in ArrayList in templates 2024-05-15 16:31:39 +12:00
Steve Boyd
fc78763d20
Merge pull request #10497 from creative-commoners/pulls/5/rescue-master-template-enhancements
Rescue master branch PRs: Template enhancements
2022-09-15 16:55:18 +12:00
Sam Minnee
9c7ecb1f79
Further work on Loz’ solution 2022-09-15 13:29:29 +12:00
Loz Calver
850482138b
Proposed solution for caching template generator counts 2022-09-15 13:29:29 +12:00
Sam Minnee
6ef5785fc5
FIX: pre-cache loop content within SSViewer.
SSViewer iterates on Iterators that it receives twice: first to get the
total number of items, then to actually render each item.

This necessitates a rewind. In order to make more use of generators,
which are not rewindable, I’d like to remove the need for a rewind.

I’ve done this by caching the content of the iterator as an array
within SSViewer_Scope.

Although this means a bit of memory usage, there are no cases in which
code will get to this point without iterating on all items, which would
use the memory anyway. It would only create onerous impacts in cases
where you are iterating on very long iterators, which would mean you’re
rendering a very large page anyway, and probably have other performance
issues.
2022-09-15 13:29:00 +12:00
Loz Calver
47337782a2
API: <% loop %> and <% with %> only ever create one new scope level 2022-09-09 11:23:38 +12:00
Guy Sartorelli
06b13e0fa6
Revert "Merge pull request #10450 from creative-commoners/pulls/5/rescue-master-generators" (#10483)
This reverts commit 9edf3a5ca635f9687179143373fe25bddf10c5e3, reversing
changes made to 934fafd29d07a248e00b3055a2ae6d2edab243f6.
2022-09-02 10:58:37 +12:00
Daniel Hensby
595835bb15
Merge pull request #6518 from sminnee/generators
Use Generators for ORM Query, Map, ArrayList
2022-08-11 16:29:32 +12:00
Steve Boyd
511b3bb060 ENH PHP 8.1 compatibility 2022-04-14 13:12:59 +12:00
William Desportes
c932d7e7fb
Fix the phpdoc blocks 2020-12-21 22:23:23 +01:00
Robbie Averill
27bd5d12e3 ENH Replace E_USER_ERROR errors with exceptions 2020-09-24 23:51:21 -07:00
Loz Calver
1dd0c04891 Tidy up + document SSViewer classes 2017-09-21 17:03:21 +01:00
Damian Mooyman
1b1e921e3d
PSR2: Whitespace-only changes 2016-11-29 12:31:16 +13:00
Sam Minnee
7a10c194bd NEW: Move code files into src/ folder.
This updates framework to be more in keeping with PHP conventions.
2016-11-01 13:37:24 +13:00