Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
PG Lewis
@pglewis
and then evaluate where it lands and decide if that's better than where it started or not
but it clears up one potential issue of nesting fields in other ones
as objects will always be available and can be found by ID (you don't necessarily need an object ref if you have ID)
which could in turn mean the original syntax scott tried might be feasible
or something very close to it
since now having a field ID DOES mean you have access to the object
Justin Sternberg
@jtsternberg
that would be awesome.. a unique id per field, yah?
basically a handle
PG Lewis
@pglewis
still just using the same IDs for fields
Justin Sternberg
@jtsternberg
based on "as objects will always be available and can be found by ID"
PG Lewis
@pglewis
if it translates as a straight refactor, I think what I'll end up with is an args->fields[] array of more field objects for nested ones
Justin Sternberg
@jtsternberg
I see
PG Lewis
@pglewis
same array keys for the object list right now as the array list
as the branch stands, so it's been easy to start converting sections of code that were referencing the arrays
just point them at $field_objects instead of $fields_array
and refactor to call through to ->args on the object for the arrray stuff
current state is I'm still keeping both parallel but soon will drop the arrays hopefully and see how bad it blows up
and all of it seems to be working except for group fields, which was known it would be broken
none of that has been comitted or pushed yet though
no-fields-array is probably just a clone of no-metabox-array right now in the repo
PG Lewis
@pglewis
the no-metabox-array branch is just the refactor to remove the $meta_box property and transition to object props and I think that's viable
the no-fields-array branch will build from there, taking it the next step of trying to rid the field arrays... tougher
a unique ID per field-- a field GUID-- would be a great idea because it removes the need to have the parent ID for nested fields
but it has to work with the field ID / parent ID for back-compat first, so I'm starting the refactor that way
PG Lewis
@pglewis
thus field IDs only should need to be unique within their field group
which is how it is now, pretty sure
Justin Sternberg
@jtsternberg
yep, that's how it is currently, but seems to me we should generate a guid and store it as a field object property
and add_field could return that guid
PG Lewis
@pglewis
I like that idea as an enhancement if we get it that far
Justin Sternberg
@jtsternberg
yah for sure
PG Lewis
@pglewis
simplifies things from the consuming side of the API
Justin Sternberg
@jtsternberg
and that guid could maybe be generated programmatically by parsing all the field parents so that it can be reverse-engineered to figure out its nesting level.. may be too ambitious, but a thought
PG Lewis
@pglewis
and, yeah, for back compat, I think we can just foreach and dump each object's args for calls to cmb2::fields
Justin Sternberg
@jtsternberg
or I guess parent guid, like a term's parent id
to get to the top, keep checking parent guid till it's 0
PG Lewis
@pglewis
pulling the stack and answering something you asked a while ago :)
Justin Sternberg
@jtsternberg
got it
PG Lewis
@pglewis
with the main field array done away with, field objects always instantiated, and fields and the metabox extending the field group object, nested field handling issue mostly evaporate:
cmb2-nested-data.png
the metabox and fields both have access to the field management functions and can add fields to themselves
so there's nesting two levels right there, and it theoretically should support arbitrary levels
still clean up to do, but that there's a breakthrough
PG Lewis
@pglewis
discog-nested-01.png
Scott Kingsley Clark
@sc0ttkclark
So beautiful
@jtsternberg ^^ phil just got that happening
Justin Sternberg
@jtsternberg
would you look at that!
nice work @pglewis!
PG Lewis
@pglewis
don't ask if it loads or saves data
Justin Sternberg
@jtsternberg
ha ha
pglewis @pglewis hand waves past that